diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgFjDaoImpl.java b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java new file mode 100644 index 0000000..cbab4c5 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java @@ -0,0 +1,469 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; +import com.szpg.db.util.ConnectionManager; + +public class PgFjDaoImpl implements PgFjDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgFjRt findLatestRtByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, RUNSECOND, RUNHOUR FROM PG_FJ_RT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjRt rt = new PgFjRt(); + Object[] item = tempList.get(0); + + rt.setId(((Number) item[0]).intValue()); + rt.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + rt.setLogtime(cal.getTime()); + rt.setUptime(cal.getTime()); + + rt.setRunsecond(Integer.parseInt((String) item[3])); + rt.setRunhour(Integer.parseInt((String) item[4])); + + logger.debug("根据ID查询风机最新运行时长成功" + rt + "]"); + + return rt; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addRtRecord(PgFjRt fjrt) { + return addRtRecord(fjrt.getRunsecond(), fjrt.getRunhour(), fjrt.getTmStr(), fjrt.getPgdeviceid()); + } + + @Override + public int addRtRecord(int second, int hour, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_RT " + + "(RUNSECOND, RUNHOUR, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = second; + params[1] = hour; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行时长成功[tm=" + tm + ", second=" + second + ", hour=" + hour + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行时长失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllStat() { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findStatById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findLatestStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机最新运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addStatRecord(PgFjStat fjstat) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(AM, RUN, FLT, EN, NO, ROUT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, ?, ?, ?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[9]; + params[0] = fjstat.getAm(); + params[1] = fjstat.getRun(); + params[2] = fjstat.getFlt(); + params[3] = fjstat.getEn(); + params[4] = fjstat.getNo(); + params[5] = fjstat.getRout(); + params[6] = fjstat.getTmStr(); + params[7] = fjstat.getTmStr(); + params[8] = fjstat.getPgdeviceid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功" + fjstat); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(RUN, FLT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = run; + params[1] = flt; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功[tm=" + tm + ", run=" + run + ", flt=" + flt + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgFjDaoImpl.java b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java new file mode 100644 index 0000000..cbab4c5 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java @@ -0,0 +1,469 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; +import com.szpg.db.util.ConnectionManager; + +public class PgFjDaoImpl implements PgFjDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgFjRt findLatestRtByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, RUNSECOND, RUNHOUR FROM PG_FJ_RT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjRt rt = new PgFjRt(); + Object[] item = tempList.get(0); + + rt.setId(((Number) item[0]).intValue()); + rt.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + rt.setLogtime(cal.getTime()); + rt.setUptime(cal.getTime()); + + rt.setRunsecond(Integer.parseInt((String) item[3])); + rt.setRunhour(Integer.parseInt((String) item[4])); + + logger.debug("根据ID查询风机最新运行时长成功" + rt + "]"); + + return rt; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addRtRecord(PgFjRt fjrt) { + return addRtRecord(fjrt.getRunsecond(), fjrt.getRunhour(), fjrt.getTmStr(), fjrt.getPgdeviceid()); + } + + @Override + public int addRtRecord(int second, int hour, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_RT " + + "(RUNSECOND, RUNHOUR, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = second; + params[1] = hour; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行时长成功[tm=" + tm + ", second=" + second + ", hour=" + hour + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行时长失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllStat() { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findStatById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findLatestStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机最新运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addStatRecord(PgFjStat fjstat) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(AM, RUN, FLT, EN, NO, ROUT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, ?, ?, ?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[9]; + params[0] = fjstat.getAm(); + params[1] = fjstat.getRun(); + params[2] = fjstat.getFlt(); + params[3] = fjstat.getEn(); + params[4] = fjstat.getNo(); + params[5] = fjstat.getRout(); + params[6] = fjstat.getTmStr(); + params[7] = fjstat.getTmStr(); + params[8] = fjstat.getPgdeviceid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功" + fjstat); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(RUN, FLT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = run; + params[1] = flt; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功[tm=" + tm + ", run=" + run + ", flt=" + flt + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java b/src/com/szpg/db/dao/impl/PgYWDaoImpl.java deleted file mode 100644 index 613c4c0..0000000 --- a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgYWDao; -import com.szpg.db.data.PgYWAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgYWDaoImpl implements PgYWDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgYWAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(0); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); - - return ywalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgYWAlm ywalm) { - return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_YW_ALM " + - "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入爆管液位报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgFjDaoImpl.java b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java new file mode 100644 index 0000000..cbab4c5 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java @@ -0,0 +1,469 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; +import com.szpg.db.util.ConnectionManager; + +public class PgFjDaoImpl implements PgFjDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgFjRt findLatestRtByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, RUNSECOND, RUNHOUR FROM PG_FJ_RT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjRt rt = new PgFjRt(); + Object[] item = tempList.get(0); + + rt.setId(((Number) item[0]).intValue()); + rt.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + rt.setLogtime(cal.getTime()); + rt.setUptime(cal.getTime()); + + rt.setRunsecond(Integer.parseInt((String) item[3])); + rt.setRunhour(Integer.parseInt((String) item[4])); + + logger.debug("根据ID查询风机最新运行时长成功" + rt + "]"); + + return rt; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addRtRecord(PgFjRt fjrt) { + return addRtRecord(fjrt.getRunsecond(), fjrt.getRunhour(), fjrt.getTmStr(), fjrt.getPgdeviceid()); + } + + @Override + public int addRtRecord(int second, int hour, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_RT " + + "(RUNSECOND, RUNHOUR, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = second; + params[1] = hour; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行时长成功[tm=" + tm + ", second=" + second + ", hour=" + hour + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行时长失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllStat() { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findStatById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findLatestStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机最新运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addStatRecord(PgFjStat fjstat) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(AM, RUN, FLT, EN, NO, ROUT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, ?, ?, ?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[9]; + params[0] = fjstat.getAm(); + params[1] = fjstat.getRun(); + params[2] = fjstat.getFlt(); + params[3] = fjstat.getEn(); + params[4] = fjstat.getNo(); + params[5] = fjstat.getRout(); + params[6] = fjstat.getTmStr(); + params[7] = fjstat.getTmStr(); + params[8] = fjstat.getPgdeviceid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功" + fjstat); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(RUN, FLT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = run; + params[1] = flt; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功[tm=" + tm + ", run=" + run + ", flt=" + flt + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java b/src/com/szpg/db/dao/impl/PgYWDaoImpl.java deleted file mode 100644 index 613c4c0..0000000 --- a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgYWDao; -import com.szpg.db.data.PgYWAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgYWDaoImpl implements PgYWDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgYWAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(0); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); - - return ywalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgYWAlm ywalm) { - return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_YW_ALM " + - "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入爆管液位报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgYwDaoImpl.java b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java new file mode 100644 index 0000000..c68faa3 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgYwDao; +import com.szpg.db.data.PgYwAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgYwDaoImpl implements PgYwDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgYwAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(0); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); + + return ywalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgYwAlm ywalm) { + return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_YW_ALM " + + "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入爆管液位报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgFjDaoImpl.java b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java new file mode 100644 index 0000000..cbab4c5 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java @@ -0,0 +1,469 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; +import com.szpg.db.util.ConnectionManager; + +public class PgFjDaoImpl implements PgFjDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgFjRt findLatestRtByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, RUNSECOND, RUNHOUR FROM PG_FJ_RT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjRt rt = new PgFjRt(); + Object[] item = tempList.get(0); + + rt.setId(((Number) item[0]).intValue()); + rt.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + rt.setLogtime(cal.getTime()); + rt.setUptime(cal.getTime()); + + rt.setRunsecond(Integer.parseInt((String) item[3])); + rt.setRunhour(Integer.parseInt((String) item[4])); + + logger.debug("根据ID查询风机最新运行时长成功" + rt + "]"); + + return rt; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addRtRecord(PgFjRt fjrt) { + return addRtRecord(fjrt.getRunsecond(), fjrt.getRunhour(), fjrt.getTmStr(), fjrt.getPgdeviceid()); + } + + @Override + public int addRtRecord(int second, int hour, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_RT " + + "(RUNSECOND, RUNHOUR, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = second; + params[1] = hour; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行时长成功[tm=" + tm + ", second=" + second + ", hour=" + hour + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行时长失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllStat() { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findStatById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findLatestStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机最新运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addStatRecord(PgFjStat fjstat) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(AM, RUN, FLT, EN, NO, ROUT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, ?, ?, ?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[9]; + params[0] = fjstat.getAm(); + params[1] = fjstat.getRun(); + params[2] = fjstat.getFlt(); + params[3] = fjstat.getEn(); + params[4] = fjstat.getNo(); + params[5] = fjstat.getRout(); + params[6] = fjstat.getTmStr(); + params[7] = fjstat.getTmStr(); + params[8] = fjstat.getPgdeviceid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功" + fjstat); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(RUN, FLT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = run; + params[1] = flt; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功[tm=" + tm + ", run=" + run + ", flt=" + flt + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java b/src/com/szpg/db/dao/impl/PgYWDaoImpl.java deleted file mode 100644 index 613c4c0..0000000 --- a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgYWDao; -import com.szpg.db.data.PgYWAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgYWDaoImpl implements PgYWDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgYWAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(0); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); - - return ywalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgYWAlm ywalm) { - return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_YW_ALM " + - "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入爆管液位报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgYwDaoImpl.java b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java new file mode 100644 index 0000000..c68faa3 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgYwDao; +import com.szpg.db.data.PgYwAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgYwDaoImpl implements PgYwDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgYwAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(0); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); + + return ywalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgYwAlm ywalm) { + return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_YW_ALM " + + "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入爆管液位报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgDSAlm.java b/src/com/szpg/db/data/PgDSAlm.java deleted file mode 100644 index 86e28bb..0000000 --- a/src/com/szpg/db/data/PgDSAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 对射报警状态数据表 - * - * @author admin - * - */ -public class PgDSAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = -8336945265752238748L; - - private Integer id; - private Boolean dsalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getDsalm() { - return dsalm; - } - - public void setDsalm(Boolean dsalm) { - this.dsalm = dsalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgFjDaoImpl.java b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java new file mode 100644 index 0000000..cbab4c5 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java @@ -0,0 +1,469 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; +import com.szpg.db.util.ConnectionManager; + +public class PgFjDaoImpl implements PgFjDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgFjRt findLatestRtByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, RUNSECOND, RUNHOUR FROM PG_FJ_RT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjRt rt = new PgFjRt(); + Object[] item = tempList.get(0); + + rt.setId(((Number) item[0]).intValue()); + rt.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + rt.setLogtime(cal.getTime()); + rt.setUptime(cal.getTime()); + + rt.setRunsecond(Integer.parseInt((String) item[3])); + rt.setRunhour(Integer.parseInt((String) item[4])); + + logger.debug("根据ID查询风机最新运行时长成功" + rt + "]"); + + return rt; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addRtRecord(PgFjRt fjrt) { + return addRtRecord(fjrt.getRunsecond(), fjrt.getRunhour(), fjrt.getTmStr(), fjrt.getPgdeviceid()); + } + + @Override + public int addRtRecord(int second, int hour, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_RT " + + "(RUNSECOND, RUNHOUR, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = second; + params[1] = hour; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行时长成功[tm=" + tm + ", second=" + second + ", hour=" + hour + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行时长失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllStat() { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findStatById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findLatestStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机最新运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addStatRecord(PgFjStat fjstat) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(AM, RUN, FLT, EN, NO, ROUT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, ?, ?, ?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[9]; + params[0] = fjstat.getAm(); + params[1] = fjstat.getRun(); + params[2] = fjstat.getFlt(); + params[3] = fjstat.getEn(); + params[4] = fjstat.getNo(); + params[5] = fjstat.getRout(); + params[6] = fjstat.getTmStr(); + params[7] = fjstat.getTmStr(); + params[8] = fjstat.getPgdeviceid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功" + fjstat); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(RUN, FLT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = run; + params[1] = flt; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功[tm=" + tm + ", run=" + run + ", flt=" + flt + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java b/src/com/szpg/db/dao/impl/PgYWDaoImpl.java deleted file mode 100644 index 613c4c0..0000000 --- a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgYWDao; -import com.szpg.db.data.PgYWAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgYWDaoImpl implements PgYWDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgYWAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(0); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); - - return ywalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgYWAlm ywalm) { - return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_YW_ALM " + - "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入爆管液位报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgYwDaoImpl.java b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java new file mode 100644 index 0000000..c68faa3 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgYwDao; +import com.szpg.db.data.PgYwAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgYwDaoImpl implements PgYwDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgYwAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(0); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); + + return ywalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgYwAlm ywalm) { + return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_YW_ALM " + + "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入爆管液位报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgDSAlm.java b/src/com/szpg/db/data/PgDSAlm.java deleted file mode 100644 index 86e28bb..0000000 --- a/src/com/szpg/db/data/PgDSAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 对射报警状态数据表 - * - * @author admin - * - */ -public class PgDSAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = -8336945265752238748L; - - private Integer id; - private Boolean dsalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getDsalm() { - return dsalm; - } - - public void setDsalm(Boolean dsalm) { - this.dsalm = dsalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgDsAlm.java b/src/com/szpg/db/data/PgDsAlm.java new file mode 100644 index 0000000..224d029 --- /dev/null +++ b/src/com/szpg/db/data/PgDsAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 对射报警状态数据表 + * + * @author admin + * + */ +public class PgDsAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -8336945265752238748L; + + private Integer id; + private Boolean dsalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getDsalm() { + return dsalm; + } + + public void setDsalm(Boolean dsalm) { + this.dsalm = dsalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgFjDaoImpl.java b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java new file mode 100644 index 0000000..cbab4c5 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java @@ -0,0 +1,469 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; +import com.szpg.db.util.ConnectionManager; + +public class PgFjDaoImpl implements PgFjDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgFjRt findLatestRtByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, RUNSECOND, RUNHOUR FROM PG_FJ_RT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjRt rt = new PgFjRt(); + Object[] item = tempList.get(0); + + rt.setId(((Number) item[0]).intValue()); + rt.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + rt.setLogtime(cal.getTime()); + rt.setUptime(cal.getTime()); + + rt.setRunsecond(Integer.parseInt((String) item[3])); + rt.setRunhour(Integer.parseInt((String) item[4])); + + logger.debug("根据ID查询风机最新运行时长成功" + rt + "]"); + + return rt; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addRtRecord(PgFjRt fjrt) { + return addRtRecord(fjrt.getRunsecond(), fjrt.getRunhour(), fjrt.getTmStr(), fjrt.getPgdeviceid()); + } + + @Override + public int addRtRecord(int second, int hour, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_RT " + + "(RUNSECOND, RUNHOUR, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = second; + params[1] = hour; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行时长成功[tm=" + tm + ", second=" + second + ", hour=" + hour + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行时长失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllStat() { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findStatById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findLatestStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机最新运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addStatRecord(PgFjStat fjstat) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(AM, RUN, FLT, EN, NO, ROUT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, ?, ?, ?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[9]; + params[0] = fjstat.getAm(); + params[1] = fjstat.getRun(); + params[2] = fjstat.getFlt(); + params[3] = fjstat.getEn(); + params[4] = fjstat.getNo(); + params[5] = fjstat.getRout(); + params[6] = fjstat.getTmStr(); + params[7] = fjstat.getTmStr(); + params[8] = fjstat.getPgdeviceid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功" + fjstat); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(RUN, FLT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = run; + params[1] = flt; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功[tm=" + tm + ", run=" + run + ", flt=" + flt + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java b/src/com/szpg/db/dao/impl/PgYWDaoImpl.java deleted file mode 100644 index 613c4c0..0000000 --- a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgYWDao; -import com.szpg.db.data.PgYWAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgYWDaoImpl implements PgYWDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgYWAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(0); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); - - return ywalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgYWAlm ywalm) { - return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_YW_ALM " + - "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入爆管液位报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgYwDaoImpl.java b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java new file mode 100644 index 0000000..c68faa3 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgYwDao; +import com.szpg.db.data.PgYwAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgYwDaoImpl implements PgYwDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgYwAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(0); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); + + return ywalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgYwAlm ywalm) { + return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_YW_ALM " + + "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入爆管液位报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgDSAlm.java b/src/com/szpg/db/data/PgDSAlm.java deleted file mode 100644 index 86e28bb..0000000 --- a/src/com/szpg/db/data/PgDSAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 对射报警状态数据表 - * - * @author admin - * - */ -public class PgDSAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = -8336945265752238748L; - - private Integer id; - private Boolean dsalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getDsalm() { - return dsalm; - } - - public void setDsalm(Boolean dsalm) { - this.dsalm = dsalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgDsAlm.java b/src/com/szpg/db/data/PgDsAlm.java new file mode 100644 index 0000000..224d029 --- /dev/null +++ b/src/com/szpg/db/data/PgDsAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 对射报警状态数据表 + * + * @author admin + * + */ +public class PgDsAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -8336945265752238748L; + + private Integer id; + private Boolean dsalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getDsalm() { + return dsalm; + } + + public void setDsalm(Boolean dsalm) { + this.dsalm = dsalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjRt.java b/src/com/szpg/db/data/PgFjRt.java new file mode 100644 index 0000000..cfb502b --- /dev/null +++ b/src/com/szpg/db/data/PgFjRt.java @@ -0,0 +1,105 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.NumberFormat; +import com.szpg.util.TimeFormat; + +/** + * 风机累计运行时长数据表 + * + * @author admin + * + */ +public class PgFjRt implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3467596631537217402L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Integer runsecond; + private Integer runhour; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Integer getRunsecond() { + return runsecond; + } + + public void setRunsecond(Integer runsecond) { + this.runsecond = runsecond; + } + + public Integer getRunhour() { + return runhour; + } + + public void setRunhour(Integer runhour) { + this.runhour = runhour; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + public String getAccRunTime() { + return NumberFormat.format(runhour + runsecond / 3600, "0.00"); + } + + @Override + public String toString() { + return "PgFjRt[acc=" + getAccRunTime() + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgFjDaoImpl.java b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java new file mode 100644 index 0000000..cbab4c5 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java @@ -0,0 +1,469 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; +import com.szpg.db.util.ConnectionManager; + +public class PgFjDaoImpl implements PgFjDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgFjRt findLatestRtByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, RUNSECOND, RUNHOUR FROM PG_FJ_RT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjRt rt = new PgFjRt(); + Object[] item = tempList.get(0); + + rt.setId(((Number) item[0]).intValue()); + rt.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + rt.setLogtime(cal.getTime()); + rt.setUptime(cal.getTime()); + + rt.setRunsecond(Integer.parseInt((String) item[3])); + rt.setRunhour(Integer.parseInt((String) item[4])); + + logger.debug("根据ID查询风机最新运行时长成功" + rt + "]"); + + return rt; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addRtRecord(PgFjRt fjrt) { + return addRtRecord(fjrt.getRunsecond(), fjrt.getRunhour(), fjrt.getTmStr(), fjrt.getPgdeviceid()); + } + + @Override + public int addRtRecord(int second, int hour, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_RT " + + "(RUNSECOND, RUNHOUR, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = second; + params[1] = hour; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行时长成功[tm=" + tm + ", second=" + second + ", hour=" + hour + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行时长失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllStat() { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findStatById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findLatestStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机最新运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addStatRecord(PgFjStat fjstat) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(AM, RUN, FLT, EN, NO, ROUT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, ?, ?, ?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[9]; + params[0] = fjstat.getAm(); + params[1] = fjstat.getRun(); + params[2] = fjstat.getFlt(); + params[3] = fjstat.getEn(); + params[4] = fjstat.getNo(); + params[5] = fjstat.getRout(); + params[6] = fjstat.getTmStr(); + params[7] = fjstat.getTmStr(); + params[8] = fjstat.getPgdeviceid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功" + fjstat); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(RUN, FLT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = run; + params[1] = flt; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功[tm=" + tm + ", run=" + run + ", flt=" + flt + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java b/src/com/szpg/db/dao/impl/PgYWDaoImpl.java deleted file mode 100644 index 613c4c0..0000000 --- a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgYWDao; -import com.szpg.db.data.PgYWAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgYWDaoImpl implements PgYWDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgYWAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(0); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); - - return ywalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgYWAlm ywalm) { - return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_YW_ALM " + - "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入爆管液位报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgYwDaoImpl.java b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java new file mode 100644 index 0000000..c68faa3 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgYwDao; +import com.szpg.db.data.PgYwAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgYwDaoImpl implements PgYwDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgYwAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(0); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); + + return ywalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgYwAlm ywalm) { + return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_YW_ALM " + + "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入爆管液位报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgDSAlm.java b/src/com/szpg/db/data/PgDSAlm.java deleted file mode 100644 index 86e28bb..0000000 --- a/src/com/szpg/db/data/PgDSAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 对射报警状态数据表 - * - * @author admin - * - */ -public class PgDSAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = -8336945265752238748L; - - private Integer id; - private Boolean dsalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getDsalm() { - return dsalm; - } - - public void setDsalm(Boolean dsalm) { - this.dsalm = dsalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgDsAlm.java b/src/com/szpg/db/data/PgDsAlm.java new file mode 100644 index 0000000..224d029 --- /dev/null +++ b/src/com/szpg/db/data/PgDsAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 对射报警状态数据表 + * + * @author admin + * + */ +public class PgDsAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -8336945265752238748L; + + private Integer id; + private Boolean dsalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getDsalm() { + return dsalm; + } + + public void setDsalm(Boolean dsalm) { + this.dsalm = dsalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjRt.java b/src/com/szpg/db/data/PgFjRt.java new file mode 100644 index 0000000..cfb502b --- /dev/null +++ b/src/com/szpg/db/data/PgFjRt.java @@ -0,0 +1,105 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.NumberFormat; +import com.szpg.util.TimeFormat; + +/** + * 风机累计运行时长数据表 + * + * @author admin + * + */ +public class PgFjRt implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3467596631537217402L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Integer runsecond; + private Integer runhour; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Integer getRunsecond() { + return runsecond; + } + + public void setRunsecond(Integer runsecond) { + this.runsecond = runsecond; + } + + public Integer getRunhour() { + return runhour; + } + + public void setRunhour(Integer runhour) { + this.runhour = runhour; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + public String getAccRunTime() { + return NumberFormat.format(runhour + runsecond / 3600, "0.00"); + } + + @Override + public String toString() { + return "PgFjRt[acc=" + getAccRunTime() + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjStat.java b/src/com/szpg/db/data/PgFjStat.java new file mode 100644 index 0000000..a9ade35 --- /dev/null +++ b/src/com/szpg/db/data/PgFjStat.java @@ -0,0 +1,136 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 风机运行状态数据表 + * + * @author admin + * + */ +public class PgFjStat implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3826912263791110981L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Boolean am; //就地/远控标志位 + private Boolean run; //运行状态标志位 + private Boolean flt; //故障报警 + private Boolean en; //手自动使能标志位 + private Boolean no; //禁止操作标志位 + private Boolean rout; //启停超时标志位 + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Boolean getAm() { + return am; + } + + public void setAm(Boolean am) { + this.am = am; + } + + public Boolean getRun() { + return run; + } + + public void setRun(Boolean run) { + this.run = run; + } + + public Boolean getFlt() { + return flt; + } + + public void setFlt(Boolean flt) { + this.flt = flt; + } + + public Boolean getEn() { + return en; + } + + public void setEn(Boolean en) { + this.en = en; + } + + public Boolean getNo() { + return no; + } + + public void setNo(Boolean no) { + this.no = no; + } + + public Boolean getRout() { + return rout; + } + + public void setRout(Boolean rout) { + this.rout = rout; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgFjStat[run=" + run + ", flt=" + flt + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgFjDaoImpl.java b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java new file mode 100644 index 0000000..cbab4c5 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java @@ -0,0 +1,469 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; +import com.szpg.db.util.ConnectionManager; + +public class PgFjDaoImpl implements PgFjDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgFjRt findLatestRtByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, RUNSECOND, RUNHOUR FROM PG_FJ_RT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjRt rt = new PgFjRt(); + Object[] item = tempList.get(0); + + rt.setId(((Number) item[0]).intValue()); + rt.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + rt.setLogtime(cal.getTime()); + rt.setUptime(cal.getTime()); + + rt.setRunsecond(Integer.parseInt((String) item[3])); + rt.setRunhour(Integer.parseInt((String) item[4])); + + logger.debug("根据ID查询风机最新运行时长成功" + rt + "]"); + + return rt; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addRtRecord(PgFjRt fjrt) { + return addRtRecord(fjrt.getRunsecond(), fjrt.getRunhour(), fjrt.getTmStr(), fjrt.getPgdeviceid()); + } + + @Override + public int addRtRecord(int second, int hour, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_RT " + + "(RUNSECOND, RUNHOUR, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = second; + params[1] = hour; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行时长成功[tm=" + tm + ", second=" + second + ", hour=" + hour + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行时长失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllStat() { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findStatById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findLatestStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机最新运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addStatRecord(PgFjStat fjstat) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(AM, RUN, FLT, EN, NO, ROUT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, ?, ?, ?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[9]; + params[0] = fjstat.getAm(); + params[1] = fjstat.getRun(); + params[2] = fjstat.getFlt(); + params[3] = fjstat.getEn(); + params[4] = fjstat.getNo(); + params[5] = fjstat.getRout(); + params[6] = fjstat.getTmStr(); + params[7] = fjstat.getTmStr(); + params[8] = fjstat.getPgdeviceid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功" + fjstat); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(RUN, FLT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = run; + params[1] = flt; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功[tm=" + tm + ", run=" + run + ", flt=" + flt + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java b/src/com/szpg/db/dao/impl/PgYWDaoImpl.java deleted file mode 100644 index 613c4c0..0000000 --- a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgYWDao; -import com.szpg.db.data.PgYWAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgYWDaoImpl implements PgYWDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgYWAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(0); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); - - return ywalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgYWAlm ywalm) { - return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_YW_ALM " + - "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入爆管液位报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgYwDaoImpl.java b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java new file mode 100644 index 0000000..c68faa3 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgYwDao; +import com.szpg.db.data.PgYwAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgYwDaoImpl implements PgYwDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgYwAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(0); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); + + return ywalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgYwAlm ywalm) { + return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_YW_ALM " + + "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入爆管液位报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgDSAlm.java b/src/com/szpg/db/data/PgDSAlm.java deleted file mode 100644 index 86e28bb..0000000 --- a/src/com/szpg/db/data/PgDSAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 对射报警状态数据表 - * - * @author admin - * - */ -public class PgDSAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = -8336945265752238748L; - - private Integer id; - private Boolean dsalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getDsalm() { - return dsalm; - } - - public void setDsalm(Boolean dsalm) { - this.dsalm = dsalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgDsAlm.java b/src/com/szpg/db/data/PgDsAlm.java new file mode 100644 index 0000000..224d029 --- /dev/null +++ b/src/com/szpg/db/data/PgDsAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 对射报警状态数据表 + * + * @author admin + * + */ +public class PgDsAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -8336945265752238748L; + + private Integer id; + private Boolean dsalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getDsalm() { + return dsalm; + } + + public void setDsalm(Boolean dsalm) { + this.dsalm = dsalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjRt.java b/src/com/szpg/db/data/PgFjRt.java new file mode 100644 index 0000000..cfb502b --- /dev/null +++ b/src/com/szpg/db/data/PgFjRt.java @@ -0,0 +1,105 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.NumberFormat; +import com.szpg.util.TimeFormat; + +/** + * 风机累计运行时长数据表 + * + * @author admin + * + */ +public class PgFjRt implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3467596631537217402L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Integer runsecond; + private Integer runhour; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Integer getRunsecond() { + return runsecond; + } + + public void setRunsecond(Integer runsecond) { + this.runsecond = runsecond; + } + + public Integer getRunhour() { + return runhour; + } + + public void setRunhour(Integer runhour) { + this.runhour = runhour; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + public String getAccRunTime() { + return NumberFormat.format(runhour + runsecond / 3600, "0.00"); + } + + @Override + public String toString() { + return "PgFjRt[acc=" + getAccRunTime() + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjStat.java b/src/com/szpg/db/data/PgFjStat.java new file mode 100644 index 0000000..a9ade35 --- /dev/null +++ b/src/com/szpg/db/data/PgFjStat.java @@ -0,0 +1,136 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 风机运行状态数据表 + * + * @author admin + * + */ +public class PgFjStat implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3826912263791110981L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Boolean am; //就地/远控标志位 + private Boolean run; //运行状态标志位 + private Boolean flt; //故障报警 + private Boolean en; //手自动使能标志位 + private Boolean no; //禁止操作标志位 + private Boolean rout; //启停超时标志位 + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Boolean getAm() { + return am; + } + + public void setAm(Boolean am) { + this.am = am; + } + + public Boolean getRun() { + return run; + } + + public void setRun(Boolean run) { + this.run = run; + } + + public Boolean getFlt() { + return flt; + } + + public void setFlt(Boolean flt) { + this.flt = flt; + } + + public Boolean getEn() { + return en; + } + + public void setEn(Boolean en) { + this.en = en; + } + + public Boolean getNo() { + return no; + } + + public void setNo(Boolean no) { + this.no = no; + } + + public Boolean getRout() { + return rout; + } + + public void setRout(Boolean rout) { + this.rout = rout; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgFjStat[run=" + run + ", flt=" + flt + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgYWAlm.java b/src/com/szpg/db/data/PgYWAlm.java deleted file mode 100644 index 9d9572f..0000000 --- a/src/com/szpg/db/data/PgYWAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 爆管液位浓度报警状态数据表 - * - * @author admin - * - */ -public class PgYWAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = 3882791834818808488L; - - private Integer id; - private Boolean ywalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getYwalm() { - return ywalm; - } - - public void setYwalm(Boolean ywalm) { - this.ywalm = ywalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgFjDaoImpl.java b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java new file mode 100644 index 0000000..cbab4c5 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java @@ -0,0 +1,469 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; +import com.szpg.db.util.ConnectionManager; + +public class PgFjDaoImpl implements PgFjDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgFjRt findLatestRtByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, RUNSECOND, RUNHOUR FROM PG_FJ_RT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjRt rt = new PgFjRt(); + Object[] item = tempList.get(0); + + rt.setId(((Number) item[0]).intValue()); + rt.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + rt.setLogtime(cal.getTime()); + rt.setUptime(cal.getTime()); + + rt.setRunsecond(Integer.parseInt((String) item[3])); + rt.setRunhour(Integer.parseInt((String) item[4])); + + logger.debug("根据ID查询风机最新运行时长成功" + rt + "]"); + + return rt; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addRtRecord(PgFjRt fjrt) { + return addRtRecord(fjrt.getRunsecond(), fjrt.getRunhour(), fjrt.getTmStr(), fjrt.getPgdeviceid()); + } + + @Override + public int addRtRecord(int second, int hour, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_RT " + + "(RUNSECOND, RUNHOUR, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = second; + params[1] = hour; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行时长成功[tm=" + tm + ", second=" + second + ", hour=" + hour + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行时长失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllStat() { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findStatById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findLatestStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机最新运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addStatRecord(PgFjStat fjstat) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(AM, RUN, FLT, EN, NO, ROUT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, ?, ?, ?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[9]; + params[0] = fjstat.getAm(); + params[1] = fjstat.getRun(); + params[2] = fjstat.getFlt(); + params[3] = fjstat.getEn(); + params[4] = fjstat.getNo(); + params[5] = fjstat.getRout(); + params[6] = fjstat.getTmStr(); + params[7] = fjstat.getTmStr(); + params[8] = fjstat.getPgdeviceid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功" + fjstat); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(RUN, FLT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = run; + params[1] = flt; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功[tm=" + tm + ", run=" + run + ", flt=" + flt + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java b/src/com/szpg/db/dao/impl/PgYWDaoImpl.java deleted file mode 100644 index 613c4c0..0000000 --- a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgYWDao; -import com.szpg.db.data.PgYWAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgYWDaoImpl implements PgYWDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgYWAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(0); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); - - return ywalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgYWAlm ywalm) { - return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_YW_ALM " + - "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入爆管液位报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgYwDaoImpl.java b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java new file mode 100644 index 0000000..c68faa3 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgYwDao; +import com.szpg.db.data.PgYwAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgYwDaoImpl implements PgYwDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgYwAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(0); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); + + return ywalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgYwAlm ywalm) { + return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_YW_ALM " + + "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入爆管液位报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgDSAlm.java b/src/com/szpg/db/data/PgDSAlm.java deleted file mode 100644 index 86e28bb..0000000 --- a/src/com/szpg/db/data/PgDSAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 对射报警状态数据表 - * - * @author admin - * - */ -public class PgDSAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = -8336945265752238748L; - - private Integer id; - private Boolean dsalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getDsalm() { - return dsalm; - } - - public void setDsalm(Boolean dsalm) { - this.dsalm = dsalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgDsAlm.java b/src/com/szpg/db/data/PgDsAlm.java new file mode 100644 index 0000000..224d029 --- /dev/null +++ b/src/com/szpg/db/data/PgDsAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 对射报警状态数据表 + * + * @author admin + * + */ +public class PgDsAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -8336945265752238748L; + + private Integer id; + private Boolean dsalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getDsalm() { + return dsalm; + } + + public void setDsalm(Boolean dsalm) { + this.dsalm = dsalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjRt.java b/src/com/szpg/db/data/PgFjRt.java new file mode 100644 index 0000000..cfb502b --- /dev/null +++ b/src/com/szpg/db/data/PgFjRt.java @@ -0,0 +1,105 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.NumberFormat; +import com.szpg.util.TimeFormat; + +/** + * 风机累计运行时长数据表 + * + * @author admin + * + */ +public class PgFjRt implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3467596631537217402L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Integer runsecond; + private Integer runhour; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Integer getRunsecond() { + return runsecond; + } + + public void setRunsecond(Integer runsecond) { + this.runsecond = runsecond; + } + + public Integer getRunhour() { + return runhour; + } + + public void setRunhour(Integer runhour) { + this.runhour = runhour; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + public String getAccRunTime() { + return NumberFormat.format(runhour + runsecond / 3600, "0.00"); + } + + @Override + public String toString() { + return "PgFjRt[acc=" + getAccRunTime() + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjStat.java b/src/com/szpg/db/data/PgFjStat.java new file mode 100644 index 0000000..a9ade35 --- /dev/null +++ b/src/com/szpg/db/data/PgFjStat.java @@ -0,0 +1,136 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 风机运行状态数据表 + * + * @author admin + * + */ +public class PgFjStat implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3826912263791110981L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Boolean am; //就地/远控标志位 + private Boolean run; //运行状态标志位 + private Boolean flt; //故障报警 + private Boolean en; //手自动使能标志位 + private Boolean no; //禁止操作标志位 + private Boolean rout; //启停超时标志位 + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Boolean getAm() { + return am; + } + + public void setAm(Boolean am) { + this.am = am; + } + + public Boolean getRun() { + return run; + } + + public void setRun(Boolean run) { + this.run = run; + } + + public Boolean getFlt() { + return flt; + } + + public void setFlt(Boolean flt) { + this.flt = flt; + } + + public Boolean getEn() { + return en; + } + + public void setEn(Boolean en) { + this.en = en; + } + + public Boolean getNo() { + return no; + } + + public void setNo(Boolean no) { + this.no = no; + } + + public Boolean getRout() { + return rout; + } + + public void setRout(Boolean rout) { + this.rout = rout; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgFjStat[run=" + run + ", flt=" + flt + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgYWAlm.java b/src/com/szpg/db/data/PgYWAlm.java deleted file mode 100644 index 9d9572f..0000000 --- a/src/com/szpg/db/data/PgYWAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 爆管液位浓度报警状态数据表 - * - * @author admin - * - */ -public class PgYWAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = 3882791834818808488L; - - private Integer id; - private Boolean ywalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getYwalm() { - return ywalm; - } - - public void setYwalm(Boolean ywalm) { - this.ywalm = ywalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgYwAlm.java b/src/com/szpg/db/data/PgYwAlm.java new file mode 100644 index 0000000..44e831b --- /dev/null +++ b/src/com/szpg/db/data/PgYwAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 爆管液位浓度报警状态数据表 + * + * @author admin + * + */ +public class PgYwAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = 3882791834818808488L; + + private Integer id; + private Boolean ywalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getYwalm() { + return ywalm; + } + + public void setYwalm(Boolean ywalm) { + this.ywalm = ywalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgFjDaoImpl.java b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java new file mode 100644 index 0000000..cbab4c5 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java @@ -0,0 +1,469 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; +import com.szpg.db.util.ConnectionManager; + +public class PgFjDaoImpl implements PgFjDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgFjRt findLatestRtByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, RUNSECOND, RUNHOUR FROM PG_FJ_RT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjRt rt = new PgFjRt(); + Object[] item = tempList.get(0); + + rt.setId(((Number) item[0]).intValue()); + rt.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + rt.setLogtime(cal.getTime()); + rt.setUptime(cal.getTime()); + + rt.setRunsecond(Integer.parseInt((String) item[3])); + rt.setRunhour(Integer.parseInt((String) item[4])); + + logger.debug("根据ID查询风机最新运行时长成功" + rt + "]"); + + return rt; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addRtRecord(PgFjRt fjrt) { + return addRtRecord(fjrt.getRunsecond(), fjrt.getRunhour(), fjrt.getTmStr(), fjrt.getPgdeviceid()); + } + + @Override + public int addRtRecord(int second, int hour, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_RT " + + "(RUNSECOND, RUNHOUR, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = second; + params[1] = hour; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行时长成功[tm=" + tm + ", second=" + second + ", hour=" + hour + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行时长失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllStat() { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findStatById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findLatestStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机最新运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addStatRecord(PgFjStat fjstat) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(AM, RUN, FLT, EN, NO, ROUT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, ?, ?, ?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[9]; + params[0] = fjstat.getAm(); + params[1] = fjstat.getRun(); + params[2] = fjstat.getFlt(); + params[3] = fjstat.getEn(); + params[4] = fjstat.getNo(); + params[5] = fjstat.getRout(); + params[6] = fjstat.getTmStr(); + params[7] = fjstat.getTmStr(); + params[8] = fjstat.getPgdeviceid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功" + fjstat); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(RUN, FLT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = run; + params[1] = flt; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功[tm=" + tm + ", run=" + run + ", flt=" + flt + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java b/src/com/szpg/db/dao/impl/PgYWDaoImpl.java deleted file mode 100644 index 613c4c0..0000000 --- a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgYWDao; -import com.szpg.db.data.PgYWAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgYWDaoImpl implements PgYWDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgYWAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(0); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); - - return ywalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgYWAlm ywalm) { - return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_YW_ALM " + - "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入爆管液位报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgYwDaoImpl.java b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java new file mode 100644 index 0000000..c68faa3 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgYwDao; +import com.szpg.db.data.PgYwAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgYwDaoImpl implements PgYwDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgYwAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(0); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); + + return ywalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgYwAlm ywalm) { + return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_YW_ALM " + + "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入爆管液位报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgDSAlm.java b/src/com/szpg/db/data/PgDSAlm.java deleted file mode 100644 index 86e28bb..0000000 --- a/src/com/szpg/db/data/PgDSAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 对射报警状态数据表 - * - * @author admin - * - */ -public class PgDSAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = -8336945265752238748L; - - private Integer id; - private Boolean dsalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getDsalm() { - return dsalm; - } - - public void setDsalm(Boolean dsalm) { - this.dsalm = dsalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgDsAlm.java b/src/com/szpg/db/data/PgDsAlm.java new file mode 100644 index 0000000..224d029 --- /dev/null +++ b/src/com/szpg/db/data/PgDsAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 对射报警状态数据表 + * + * @author admin + * + */ +public class PgDsAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -8336945265752238748L; + + private Integer id; + private Boolean dsalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getDsalm() { + return dsalm; + } + + public void setDsalm(Boolean dsalm) { + this.dsalm = dsalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjRt.java b/src/com/szpg/db/data/PgFjRt.java new file mode 100644 index 0000000..cfb502b --- /dev/null +++ b/src/com/szpg/db/data/PgFjRt.java @@ -0,0 +1,105 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.NumberFormat; +import com.szpg.util.TimeFormat; + +/** + * 风机累计运行时长数据表 + * + * @author admin + * + */ +public class PgFjRt implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3467596631537217402L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Integer runsecond; + private Integer runhour; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Integer getRunsecond() { + return runsecond; + } + + public void setRunsecond(Integer runsecond) { + this.runsecond = runsecond; + } + + public Integer getRunhour() { + return runhour; + } + + public void setRunhour(Integer runhour) { + this.runhour = runhour; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + public String getAccRunTime() { + return NumberFormat.format(runhour + runsecond / 3600, "0.00"); + } + + @Override + public String toString() { + return "PgFjRt[acc=" + getAccRunTime() + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjStat.java b/src/com/szpg/db/data/PgFjStat.java new file mode 100644 index 0000000..a9ade35 --- /dev/null +++ b/src/com/szpg/db/data/PgFjStat.java @@ -0,0 +1,136 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 风机运行状态数据表 + * + * @author admin + * + */ +public class PgFjStat implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3826912263791110981L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Boolean am; //就地/远控标志位 + private Boolean run; //运行状态标志位 + private Boolean flt; //故障报警 + private Boolean en; //手自动使能标志位 + private Boolean no; //禁止操作标志位 + private Boolean rout; //启停超时标志位 + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Boolean getAm() { + return am; + } + + public void setAm(Boolean am) { + this.am = am; + } + + public Boolean getRun() { + return run; + } + + public void setRun(Boolean run) { + this.run = run; + } + + public Boolean getFlt() { + return flt; + } + + public void setFlt(Boolean flt) { + this.flt = flt; + } + + public Boolean getEn() { + return en; + } + + public void setEn(Boolean en) { + this.en = en; + } + + public Boolean getNo() { + return no; + } + + public void setNo(Boolean no) { + this.no = no; + } + + public Boolean getRout() { + return rout; + } + + public void setRout(Boolean rout) { + this.rout = rout; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgFjStat[run=" + run + ", flt=" + flt + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgYWAlm.java b/src/com/szpg/db/data/PgYWAlm.java deleted file mode 100644 index 9d9572f..0000000 --- a/src/com/szpg/db/data/PgYWAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 爆管液位浓度报警状态数据表 - * - * @author admin - * - */ -public class PgYWAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = 3882791834818808488L; - - private Integer id; - private Boolean ywalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getYwalm() { - return ywalm; - } - - public void setYwalm(Boolean ywalm) { - this.ywalm = ywalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgYwAlm.java b/src/com/szpg/db/data/PgYwAlm.java new file mode 100644 index 0000000..44e831b --- /dev/null +++ b/src/com/szpg/db/data/PgYwAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 爆管液位浓度报警状态数据表 + * + * @author admin + * + */ +public class PgYwAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = 3882791834818808488L; + + private Integer id; + private Boolean ywalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getYwalm() { + return ywalm; + } + + public void setYwalm(Boolean ywalm) { + this.ywalm = ywalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/plc/message/AppMessageConstants.java b/src/com/szpg/plc/message/AppMessageConstants.java index 1c84086..bedec39 100644 --- a/src/com/szpg/plc/message/AppMessageConstants.java +++ b/src/com/szpg/plc/message/AppMessageConstants.java @@ -16,4 +16,6 @@ public final static String CMD_TYPE_READYWSTATUS = "21"; //读取爆管液位报警状态命令 public final static String CMD_TYPE_READDSSTATUS = "22"; //读取对射报警状态命令 + public final static String CMD_TYPE_READFJSTAT = "23"; //读取风机运行状态命令 + public final static String CMD_TYPE_READFJRUNTIME = "24"; //读取风机运行时长命令 } diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgFjDaoImpl.java b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java new file mode 100644 index 0000000..cbab4c5 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java @@ -0,0 +1,469 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; +import com.szpg.db.util.ConnectionManager; + +public class PgFjDaoImpl implements PgFjDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgFjRt findLatestRtByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, RUNSECOND, RUNHOUR FROM PG_FJ_RT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjRt rt = new PgFjRt(); + Object[] item = tempList.get(0); + + rt.setId(((Number) item[0]).intValue()); + rt.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + rt.setLogtime(cal.getTime()); + rt.setUptime(cal.getTime()); + + rt.setRunsecond(Integer.parseInt((String) item[3])); + rt.setRunhour(Integer.parseInt((String) item[4])); + + logger.debug("根据ID查询风机最新运行时长成功" + rt + "]"); + + return rt; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addRtRecord(PgFjRt fjrt) { + return addRtRecord(fjrt.getRunsecond(), fjrt.getRunhour(), fjrt.getTmStr(), fjrt.getPgdeviceid()); + } + + @Override + public int addRtRecord(int second, int hour, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_RT " + + "(RUNSECOND, RUNHOUR, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = second; + params[1] = hour; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行时长成功[tm=" + tm + ", second=" + second + ", hour=" + hour + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行时长失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllStat() { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findStatById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findLatestStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机最新运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addStatRecord(PgFjStat fjstat) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(AM, RUN, FLT, EN, NO, ROUT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, ?, ?, ?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[9]; + params[0] = fjstat.getAm(); + params[1] = fjstat.getRun(); + params[2] = fjstat.getFlt(); + params[3] = fjstat.getEn(); + params[4] = fjstat.getNo(); + params[5] = fjstat.getRout(); + params[6] = fjstat.getTmStr(); + params[7] = fjstat.getTmStr(); + params[8] = fjstat.getPgdeviceid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功" + fjstat); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(RUN, FLT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = run; + params[1] = flt; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功[tm=" + tm + ", run=" + run + ", flt=" + flt + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java b/src/com/szpg/db/dao/impl/PgYWDaoImpl.java deleted file mode 100644 index 613c4c0..0000000 --- a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgYWDao; -import com.szpg.db.data.PgYWAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgYWDaoImpl implements PgYWDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgYWAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(0); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); - - return ywalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgYWAlm ywalm) { - return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_YW_ALM " + - "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入爆管液位报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgYwDaoImpl.java b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java new file mode 100644 index 0000000..c68faa3 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgYwDao; +import com.szpg.db.data.PgYwAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgYwDaoImpl implements PgYwDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgYwAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(0); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); + + return ywalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgYwAlm ywalm) { + return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_YW_ALM " + + "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入爆管液位报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgDSAlm.java b/src/com/szpg/db/data/PgDSAlm.java deleted file mode 100644 index 86e28bb..0000000 --- a/src/com/szpg/db/data/PgDSAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 对射报警状态数据表 - * - * @author admin - * - */ -public class PgDSAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = -8336945265752238748L; - - private Integer id; - private Boolean dsalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getDsalm() { - return dsalm; - } - - public void setDsalm(Boolean dsalm) { - this.dsalm = dsalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgDsAlm.java b/src/com/szpg/db/data/PgDsAlm.java new file mode 100644 index 0000000..224d029 --- /dev/null +++ b/src/com/szpg/db/data/PgDsAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 对射报警状态数据表 + * + * @author admin + * + */ +public class PgDsAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -8336945265752238748L; + + private Integer id; + private Boolean dsalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getDsalm() { + return dsalm; + } + + public void setDsalm(Boolean dsalm) { + this.dsalm = dsalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjRt.java b/src/com/szpg/db/data/PgFjRt.java new file mode 100644 index 0000000..cfb502b --- /dev/null +++ b/src/com/szpg/db/data/PgFjRt.java @@ -0,0 +1,105 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.NumberFormat; +import com.szpg.util.TimeFormat; + +/** + * 风机累计运行时长数据表 + * + * @author admin + * + */ +public class PgFjRt implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3467596631537217402L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Integer runsecond; + private Integer runhour; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Integer getRunsecond() { + return runsecond; + } + + public void setRunsecond(Integer runsecond) { + this.runsecond = runsecond; + } + + public Integer getRunhour() { + return runhour; + } + + public void setRunhour(Integer runhour) { + this.runhour = runhour; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + public String getAccRunTime() { + return NumberFormat.format(runhour + runsecond / 3600, "0.00"); + } + + @Override + public String toString() { + return "PgFjRt[acc=" + getAccRunTime() + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjStat.java b/src/com/szpg/db/data/PgFjStat.java new file mode 100644 index 0000000..a9ade35 --- /dev/null +++ b/src/com/szpg/db/data/PgFjStat.java @@ -0,0 +1,136 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 风机运行状态数据表 + * + * @author admin + * + */ +public class PgFjStat implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3826912263791110981L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Boolean am; //就地/远控标志位 + private Boolean run; //运行状态标志位 + private Boolean flt; //故障报警 + private Boolean en; //手自动使能标志位 + private Boolean no; //禁止操作标志位 + private Boolean rout; //启停超时标志位 + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Boolean getAm() { + return am; + } + + public void setAm(Boolean am) { + this.am = am; + } + + public Boolean getRun() { + return run; + } + + public void setRun(Boolean run) { + this.run = run; + } + + public Boolean getFlt() { + return flt; + } + + public void setFlt(Boolean flt) { + this.flt = flt; + } + + public Boolean getEn() { + return en; + } + + public void setEn(Boolean en) { + this.en = en; + } + + public Boolean getNo() { + return no; + } + + public void setNo(Boolean no) { + this.no = no; + } + + public Boolean getRout() { + return rout; + } + + public void setRout(Boolean rout) { + this.rout = rout; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgFjStat[run=" + run + ", flt=" + flt + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgYWAlm.java b/src/com/szpg/db/data/PgYWAlm.java deleted file mode 100644 index 9d9572f..0000000 --- a/src/com/szpg/db/data/PgYWAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 爆管液位浓度报警状态数据表 - * - * @author admin - * - */ -public class PgYWAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = 3882791834818808488L; - - private Integer id; - private Boolean ywalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getYwalm() { - return ywalm; - } - - public void setYwalm(Boolean ywalm) { - this.ywalm = ywalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgYwAlm.java b/src/com/szpg/db/data/PgYwAlm.java new file mode 100644 index 0000000..44e831b --- /dev/null +++ b/src/com/szpg/db/data/PgYwAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 爆管液位浓度报警状态数据表 + * + * @author admin + * + */ +public class PgYwAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = 3882791834818808488L; + + private Integer id; + private Boolean ywalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getYwalm() { + return ywalm; + } + + public void setYwalm(Boolean ywalm) { + this.ywalm = ywalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/plc/message/AppMessageConstants.java b/src/com/szpg/plc/message/AppMessageConstants.java index 1c84086..bedec39 100644 --- a/src/com/szpg/plc/message/AppMessageConstants.java +++ b/src/com/szpg/plc/message/AppMessageConstants.java @@ -16,4 +16,6 @@ public final static String CMD_TYPE_READYWSTATUS = "21"; //读取爆管液位报警状态命令 public final static String CMD_TYPE_READDSSTATUS = "22"; //读取对射报警状态命令 + public final static String CMD_TYPE_READFJSTAT = "23"; //读取风机运行状态命令 + public final static String CMD_TYPE_READFJRUNTIME = "24"; //读取风机运行时长命令 } diff --git a/src/com/szpg/plc/message/command/ReadMemoryCommand.java b/src/com/szpg/plc/message/command/ReadMemoryCommand.java index 3678a16..67c1a63 100644 --- a/src/com/szpg/plc/message/command/ReadMemoryCommand.java +++ b/src/com/szpg/plc/message/command/ReadMemoryCommand.java @@ -6,6 +6,8 @@ import com.szpg.plc.message.command.read.ReadCOStatusCommand; import com.szpg.plc.message.command.read.ReadCOValueCommand; import com.szpg.plc.message.command.read.ReadDSStatusCommand; +import com.szpg.plc.message.command.read.ReadFjRtCommand; +import com.szpg.plc.message.command.read.ReadFjStatCommand; import com.szpg.plc.message.command.read.ReadHSStatusCommand; import com.szpg.plc.message.command.read.ReadHSValueCommand; import com.szpg.plc.message.command.read.ReadO2StatusCommand; @@ -109,6 +111,11 @@ case AppMessageConstants.CMD_TYPE_READDSSTATUS: return new ReadDSStatusCommand(); + + case AppMessageConstants.CMD_TYPE_READFJSTAT: + return new ReadFjStatCommand(); + case AppMessageConstants.CMD_TYPE_READFJRUNTIME: + return new ReadFjRtCommand(); default: return null; diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgFjDaoImpl.java b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java new file mode 100644 index 0000000..cbab4c5 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java @@ -0,0 +1,469 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; +import com.szpg.db.util.ConnectionManager; + +public class PgFjDaoImpl implements PgFjDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgFjRt findLatestRtByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, RUNSECOND, RUNHOUR FROM PG_FJ_RT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjRt rt = new PgFjRt(); + Object[] item = tempList.get(0); + + rt.setId(((Number) item[0]).intValue()); + rt.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + rt.setLogtime(cal.getTime()); + rt.setUptime(cal.getTime()); + + rt.setRunsecond(Integer.parseInt((String) item[3])); + rt.setRunhour(Integer.parseInt((String) item[4])); + + logger.debug("根据ID查询风机最新运行时长成功" + rt + "]"); + + return rt; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addRtRecord(PgFjRt fjrt) { + return addRtRecord(fjrt.getRunsecond(), fjrt.getRunhour(), fjrt.getTmStr(), fjrt.getPgdeviceid()); + } + + @Override + public int addRtRecord(int second, int hour, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_RT " + + "(RUNSECOND, RUNHOUR, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = second; + params[1] = hour; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行时长成功[tm=" + tm + ", second=" + second + ", hour=" + hour + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行时长失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllStat() { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findStatById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findLatestStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机最新运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addStatRecord(PgFjStat fjstat) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(AM, RUN, FLT, EN, NO, ROUT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, ?, ?, ?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[9]; + params[0] = fjstat.getAm(); + params[1] = fjstat.getRun(); + params[2] = fjstat.getFlt(); + params[3] = fjstat.getEn(); + params[4] = fjstat.getNo(); + params[5] = fjstat.getRout(); + params[6] = fjstat.getTmStr(); + params[7] = fjstat.getTmStr(); + params[8] = fjstat.getPgdeviceid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功" + fjstat); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(RUN, FLT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = run; + params[1] = flt; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功[tm=" + tm + ", run=" + run + ", flt=" + flt + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java b/src/com/szpg/db/dao/impl/PgYWDaoImpl.java deleted file mode 100644 index 613c4c0..0000000 --- a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgYWDao; -import com.szpg.db.data.PgYWAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgYWDaoImpl implements PgYWDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgYWAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(0); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); - - return ywalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgYWAlm ywalm) { - return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_YW_ALM " + - "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入爆管液位报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgYwDaoImpl.java b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java new file mode 100644 index 0000000..c68faa3 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgYwDao; +import com.szpg.db.data.PgYwAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgYwDaoImpl implements PgYwDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgYwAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(0); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); + + return ywalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgYwAlm ywalm) { + return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_YW_ALM " + + "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入爆管液位报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgDSAlm.java b/src/com/szpg/db/data/PgDSAlm.java deleted file mode 100644 index 86e28bb..0000000 --- a/src/com/szpg/db/data/PgDSAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 对射报警状态数据表 - * - * @author admin - * - */ -public class PgDSAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = -8336945265752238748L; - - private Integer id; - private Boolean dsalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getDsalm() { - return dsalm; - } - - public void setDsalm(Boolean dsalm) { - this.dsalm = dsalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgDsAlm.java b/src/com/szpg/db/data/PgDsAlm.java new file mode 100644 index 0000000..224d029 --- /dev/null +++ b/src/com/szpg/db/data/PgDsAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 对射报警状态数据表 + * + * @author admin + * + */ +public class PgDsAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -8336945265752238748L; + + private Integer id; + private Boolean dsalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getDsalm() { + return dsalm; + } + + public void setDsalm(Boolean dsalm) { + this.dsalm = dsalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjRt.java b/src/com/szpg/db/data/PgFjRt.java new file mode 100644 index 0000000..cfb502b --- /dev/null +++ b/src/com/szpg/db/data/PgFjRt.java @@ -0,0 +1,105 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.NumberFormat; +import com.szpg.util.TimeFormat; + +/** + * 风机累计运行时长数据表 + * + * @author admin + * + */ +public class PgFjRt implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3467596631537217402L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Integer runsecond; + private Integer runhour; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Integer getRunsecond() { + return runsecond; + } + + public void setRunsecond(Integer runsecond) { + this.runsecond = runsecond; + } + + public Integer getRunhour() { + return runhour; + } + + public void setRunhour(Integer runhour) { + this.runhour = runhour; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + public String getAccRunTime() { + return NumberFormat.format(runhour + runsecond / 3600, "0.00"); + } + + @Override + public String toString() { + return "PgFjRt[acc=" + getAccRunTime() + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjStat.java b/src/com/szpg/db/data/PgFjStat.java new file mode 100644 index 0000000..a9ade35 --- /dev/null +++ b/src/com/szpg/db/data/PgFjStat.java @@ -0,0 +1,136 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 风机运行状态数据表 + * + * @author admin + * + */ +public class PgFjStat implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3826912263791110981L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Boolean am; //就地/远控标志位 + private Boolean run; //运行状态标志位 + private Boolean flt; //故障报警 + private Boolean en; //手自动使能标志位 + private Boolean no; //禁止操作标志位 + private Boolean rout; //启停超时标志位 + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Boolean getAm() { + return am; + } + + public void setAm(Boolean am) { + this.am = am; + } + + public Boolean getRun() { + return run; + } + + public void setRun(Boolean run) { + this.run = run; + } + + public Boolean getFlt() { + return flt; + } + + public void setFlt(Boolean flt) { + this.flt = flt; + } + + public Boolean getEn() { + return en; + } + + public void setEn(Boolean en) { + this.en = en; + } + + public Boolean getNo() { + return no; + } + + public void setNo(Boolean no) { + this.no = no; + } + + public Boolean getRout() { + return rout; + } + + public void setRout(Boolean rout) { + this.rout = rout; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgFjStat[run=" + run + ", flt=" + flt + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgYWAlm.java b/src/com/szpg/db/data/PgYWAlm.java deleted file mode 100644 index 9d9572f..0000000 --- a/src/com/szpg/db/data/PgYWAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 爆管液位浓度报警状态数据表 - * - * @author admin - * - */ -public class PgYWAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = 3882791834818808488L; - - private Integer id; - private Boolean ywalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getYwalm() { - return ywalm; - } - - public void setYwalm(Boolean ywalm) { - this.ywalm = ywalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgYwAlm.java b/src/com/szpg/db/data/PgYwAlm.java new file mode 100644 index 0000000..44e831b --- /dev/null +++ b/src/com/szpg/db/data/PgYwAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 爆管液位浓度报警状态数据表 + * + * @author admin + * + */ +public class PgYwAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = 3882791834818808488L; + + private Integer id; + private Boolean ywalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getYwalm() { + return ywalm; + } + + public void setYwalm(Boolean ywalm) { + this.ywalm = ywalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/plc/message/AppMessageConstants.java b/src/com/szpg/plc/message/AppMessageConstants.java index 1c84086..bedec39 100644 --- a/src/com/szpg/plc/message/AppMessageConstants.java +++ b/src/com/szpg/plc/message/AppMessageConstants.java @@ -16,4 +16,6 @@ public final static String CMD_TYPE_READYWSTATUS = "21"; //读取爆管液位报警状态命令 public final static String CMD_TYPE_READDSSTATUS = "22"; //读取对射报警状态命令 + public final static String CMD_TYPE_READFJSTAT = "23"; //读取风机运行状态命令 + public final static String CMD_TYPE_READFJRUNTIME = "24"; //读取风机运行时长命令 } diff --git a/src/com/szpg/plc/message/command/ReadMemoryCommand.java b/src/com/szpg/plc/message/command/ReadMemoryCommand.java index 3678a16..67c1a63 100644 --- a/src/com/szpg/plc/message/command/ReadMemoryCommand.java +++ b/src/com/szpg/plc/message/command/ReadMemoryCommand.java @@ -6,6 +6,8 @@ import com.szpg.plc.message.command.read.ReadCOStatusCommand; import com.szpg.plc.message.command.read.ReadCOValueCommand; import com.szpg.plc.message.command.read.ReadDSStatusCommand; +import com.szpg.plc.message.command.read.ReadFjRtCommand; +import com.szpg.plc.message.command.read.ReadFjStatCommand; import com.szpg.plc.message.command.read.ReadHSStatusCommand; import com.szpg.plc.message.command.read.ReadHSValueCommand; import com.szpg.plc.message.command.read.ReadO2StatusCommand; @@ -109,6 +111,11 @@ case AppMessageConstants.CMD_TYPE_READDSSTATUS: return new ReadDSStatusCommand(); + + case AppMessageConstants.CMD_TYPE_READFJSTAT: + return new ReadFjStatCommand(); + case AppMessageConstants.CMD_TYPE_READFJRUNTIME: + return new ReadFjRtCommand(); default: return null; diff --git a/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java b/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java new file mode 100644 index 0000000..88f7016 --- /dev/null +++ b/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java @@ -0,0 +1,29 @@ +package com.szpg.plc.message.command.read; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.message.response.read.ReadFjRtCommandResponse; + +public class ReadFjRtCommand extends ReadMemoryCommand { + + /** + * + */ + private static final long serialVersionUID = -8726665168808135207L; + + @Override + public Class getResponseClass() { + return ReadFjRtCommandResponse.class; + } + + @Override + public String toString() { + return "向终端[" + getDestinationId() + "]发送查询风机累计运行时长命令"; + } + + @Override + public String getCommandType() { + return AppMessageConstants.CMD_TYPE_READFJRUNTIME; + } + +} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgFjDaoImpl.java b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java new file mode 100644 index 0000000..cbab4c5 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java @@ -0,0 +1,469 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; +import com.szpg.db.util.ConnectionManager; + +public class PgFjDaoImpl implements PgFjDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgFjRt findLatestRtByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, RUNSECOND, RUNHOUR FROM PG_FJ_RT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjRt rt = new PgFjRt(); + Object[] item = tempList.get(0); + + rt.setId(((Number) item[0]).intValue()); + rt.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + rt.setLogtime(cal.getTime()); + rt.setUptime(cal.getTime()); + + rt.setRunsecond(Integer.parseInt((String) item[3])); + rt.setRunhour(Integer.parseInt((String) item[4])); + + logger.debug("根据ID查询风机最新运行时长成功" + rt + "]"); + + return rt; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addRtRecord(PgFjRt fjrt) { + return addRtRecord(fjrt.getRunsecond(), fjrt.getRunhour(), fjrt.getTmStr(), fjrt.getPgdeviceid()); + } + + @Override + public int addRtRecord(int second, int hour, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_RT " + + "(RUNSECOND, RUNHOUR, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = second; + params[1] = hour; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行时长成功[tm=" + tm + ", second=" + second + ", hour=" + hour + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行时长失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllStat() { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findStatById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findLatestStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机最新运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addStatRecord(PgFjStat fjstat) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(AM, RUN, FLT, EN, NO, ROUT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, ?, ?, ?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[9]; + params[0] = fjstat.getAm(); + params[1] = fjstat.getRun(); + params[2] = fjstat.getFlt(); + params[3] = fjstat.getEn(); + params[4] = fjstat.getNo(); + params[5] = fjstat.getRout(); + params[6] = fjstat.getTmStr(); + params[7] = fjstat.getTmStr(); + params[8] = fjstat.getPgdeviceid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功" + fjstat); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(RUN, FLT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = run; + params[1] = flt; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功[tm=" + tm + ", run=" + run + ", flt=" + flt + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java b/src/com/szpg/db/dao/impl/PgYWDaoImpl.java deleted file mode 100644 index 613c4c0..0000000 --- a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgYWDao; -import com.szpg.db.data.PgYWAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgYWDaoImpl implements PgYWDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgYWAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(0); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); - - return ywalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgYWAlm ywalm) { - return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_YW_ALM " + - "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入爆管液位报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgYwDaoImpl.java b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java new file mode 100644 index 0000000..c68faa3 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgYwDao; +import com.szpg.db.data.PgYwAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgYwDaoImpl implements PgYwDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgYwAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(0); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); + + return ywalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgYwAlm ywalm) { + return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_YW_ALM " + + "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入爆管液位报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgDSAlm.java b/src/com/szpg/db/data/PgDSAlm.java deleted file mode 100644 index 86e28bb..0000000 --- a/src/com/szpg/db/data/PgDSAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 对射报警状态数据表 - * - * @author admin - * - */ -public class PgDSAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = -8336945265752238748L; - - private Integer id; - private Boolean dsalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getDsalm() { - return dsalm; - } - - public void setDsalm(Boolean dsalm) { - this.dsalm = dsalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgDsAlm.java b/src/com/szpg/db/data/PgDsAlm.java new file mode 100644 index 0000000..224d029 --- /dev/null +++ b/src/com/szpg/db/data/PgDsAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 对射报警状态数据表 + * + * @author admin + * + */ +public class PgDsAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -8336945265752238748L; + + private Integer id; + private Boolean dsalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getDsalm() { + return dsalm; + } + + public void setDsalm(Boolean dsalm) { + this.dsalm = dsalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjRt.java b/src/com/szpg/db/data/PgFjRt.java new file mode 100644 index 0000000..cfb502b --- /dev/null +++ b/src/com/szpg/db/data/PgFjRt.java @@ -0,0 +1,105 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.NumberFormat; +import com.szpg.util.TimeFormat; + +/** + * 风机累计运行时长数据表 + * + * @author admin + * + */ +public class PgFjRt implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3467596631537217402L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Integer runsecond; + private Integer runhour; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Integer getRunsecond() { + return runsecond; + } + + public void setRunsecond(Integer runsecond) { + this.runsecond = runsecond; + } + + public Integer getRunhour() { + return runhour; + } + + public void setRunhour(Integer runhour) { + this.runhour = runhour; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + public String getAccRunTime() { + return NumberFormat.format(runhour + runsecond / 3600, "0.00"); + } + + @Override + public String toString() { + return "PgFjRt[acc=" + getAccRunTime() + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjStat.java b/src/com/szpg/db/data/PgFjStat.java new file mode 100644 index 0000000..a9ade35 --- /dev/null +++ b/src/com/szpg/db/data/PgFjStat.java @@ -0,0 +1,136 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 风机运行状态数据表 + * + * @author admin + * + */ +public class PgFjStat implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3826912263791110981L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Boolean am; //就地/远控标志位 + private Boolean run; //运行状态标志位 + private Boolean flt; //故障报警 + private Boolean en; //手自动使能标志位 + private Boolean no; //禁止操作标志位 + private Boolean rout; //启停超时标志位 + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Boolean getAm() { + return am; + } + + public void setAm(Boolean am) { + this.am = am; + } + + public Boolean getRun() { + return run; + } + + public void setRun(Boolean run) { + this.run = run; + } + + public Boolean getFlt() { + return flt; + } + + public void setFlt(Boolean flt) { + this.flt = flt; + } + + public Boolean getEn() { + return en; + } + + public void setEn(Boolean en) { + this.en = en; + } + + public Boolean getNo() { + return no; + } + + public void setNo(Boolean no) { + this.no = no; + } + + public Boolean getRout() { + return rout; + } + + public void setRout(Boolean rout) { + this.rout = rout; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgFjStat[run=" + run + ", flt=" + flt + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgYWAlm.java b/src/com/szpg/db/data/PgYWAlm.java deleted file mode 100644 index 9d9572f..0000000 --- a/src/com/szpg/db/data/PgYWAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 爆管液位浓度报警状态数据表 - * - * @author admin - * - */ -public class PgYWAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = 3882791834818808488L; - - private Integer id; - private Boolean ywalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getYwalm() { - return ywalm; - } - - public void setYwalm(Boolean ywalm) { - this.ywalm = ywalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgYwAlm.java b/src/com/szpg/db/data/PgYwAlm.java new file mode 100644 index 0000000..44e831b --- /dev/null +++ b/src/com/szpg/db/data/PgYwAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 爆管液位浓度报警状态数据表 + * + * @author admin + * + */ +public class PgYwAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = 3882791834818808488L; + + private Integer id; + private Boolean ywalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getYwalm() { + return ywalm; + } + + public void setYwalm(Boolean ywalm) { + this.ywalm = ywalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/plc/message/AppMessageConstants.java b/src/com/szpg/plc/message/AppMessageConstants.java index 1c84086..bedec39 100644 --- a/src/com/szpg/plc/message/AppMessageConstants.java +++ b/src/com/szpg/plc/message/AppMessageConstants.java @@ -16,4 +16,6 @@ public final static String CMD_TYPE_READYWSTATUS = "21"; //读取爆管液位报警状态命令 public final static String CMD_TYPE_READDSSTATUS = "22"; //读取对射报警状态命令 + public final static String CMD_TYPE_READFJSTAT = "23"; //读取风机运行状态命令 + public final static String CMD_TYPE_READFJRUNTIME = "24"; //读取风机运行时长命令 } diff --git a/src/com/szpg/plc/message/command/ReadMemoryCommand.java b/src/com/szpg/plc/message/command/ReadMemoryCommand.java index 3678a16..67c1a63 100644 --- a/src/com/szpg/plc/message/command/ReadMemoryCommand.java +++ b/src/com/szpg/plc/message/command/ReadMemoryCommand.java @@ -6,6 +6,8 @@ import com.szpg.plc.message.command.read.ReadCOStatusCommand; import com.szpg.plc.message.command.read.ReadCOValueCommand; import com.szpg.plc.message.command.read.ReadDSStatusCommand; +import com.szpg.plc.message.command.read.ReadFjRtCommand; +import com.szpg.plc.message.command.read.ReadFjStatCommand; import com.szpg.plc.message.command.read.ReadHSStatusCommand; import com.szpg.plc.message.command.read.ReadHSValueCommand; import com.szpg.plc.message.command.read.ReadO2StatusCommand; @@ -109,6 +111,11 @@ case AppMessageConstants.CMD_TYPE_READDSSTATUS: return new ReadDSStatusCommand(); + + case AppMessageConstants.CMD_TYPE_READFJSTAT: + return new ReadFjStatCommand(); + case AppMessageConstants.CMD_TYPE_READFJRUNTIME: + return new ReadFjRtCommand(); default: return null; diff --git a/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java b/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java new file mode 100644 index 0000000..88f7016 --- /dev/null +++ b/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java @@ -0,0 +1,29 @@ +package com.szpg.plc.message.command.read; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.message.response.read.ReadFjRtCommandResponse; + +public class ReadFjRtCommand extends ReadMemoryCommand { + + /** + * + */ + private static final long serialVersionUID = -8726665168808135207L; + + @Override + public Class getResponseClass() { + return ReadFjRtCommandResponse.class; + } + + @Override + public String toString() { + return "向终端[" + getDestinationId() + "]发送查询风机累计运行时长命令"; + } + + @Override + public String getCommandType() { + return AppMessageConstants.CMD_TYPE_READFJRUNTIME; + } + +} diff --git a/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java b/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java new file mode 100644 index 0000000..bb995b7 --- /dev/null +++ b/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java @@ -0,0 +1,29 @@ +package com.szpg.plc.message.command.read; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.message.response.read.ReadFjStatCommandResponse; + +public class ReadFjStatCommand extends ReadMemoryCommand { + + /** + * + */ + private static final long serialVersionUID = -4572411641346032487L; + + @Override + public Class getResponseClass() { + return ReadFjStatCommandResponse.class; + } + + @Override + public String toString() { + return "向终端[" + getDestinationId() + "]发送查询风机运行状态命令"; + } + + @Override + public String getCommandType() { + return AppMessageConstants.CMD_TYPE_READFJSTAT; + } + +} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgFjDaoImpl.java b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java new file mode 100644 index 0000000..cbab4c5 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java @@ -0,0 +1,469 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; +import com.szpg.db.util.ConnectionManager; + +public class PgFjDaoImpl implements PgFjDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgFjRt findLatestRtByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, RUNSECOND, RUNHOUR FROM PG_FJ_RT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjRt rt = new PgFjRt(); + Object[] item = tempList.get(0); + + rt.setId(((Number) item[0]).intValue()); + rt.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + rt.setLogtime(cal.getTime()); + rt.setUptime(cal.getTime()); + + rt.setRunsecond(Integer.parseInt((String) item[3])); + rt.setRunhour(Integer.parseInt((String) item[4])); + + logger.debug("根据ID查询风机最新运行时长成功" + rt + "]"); + + return rt; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addRtRecord(PgFjRt fjrt) { + return addRtRecord(fjrt.getRunsecond(), fjrt.getRunhour(), fjrt.getTmStr(), fjrt.getPgdeviceid()); + } + + @Override + public int addRtRecord(int second, int hour, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_RT " + + "(RUNSECOND, RUNHOUR, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = second; + params[1] = hour; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行时长成功[tm=" + tm + ", second=" + second + ", hour=" + hour + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行时长失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllStat() { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findStatById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findLatestStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机最新运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addStatRecord(PgFjStat fjstat) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(AM, RUN, FLT, EN, NO, ROUT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, ?, ?, ?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[9]; + params[0] = fjstat.getAm(); + params[1] = fjstat.getRun(); + params[2] = fjstat.getFlt(); + params[3] = fjstat.getEn(); + params[4] = fjstat.getNo(); + params[5] = fjstat.getRout(); + params[6] = fjstat.getTmStr(); + params[7] = fjstat.getTmStr(); + params[8] = fjstat.getPgdeviceid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功" + fjstat); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(RUN, FLT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = run; + params[1] = flt; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功[tm=" + tm + ", run=" + run + ", flt=" + flt + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java b/src/com/szpg/db/dao/impl/PgYWDaoImpl.java deleted file mode 100644 index 613c4c0..0000000 --- a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgYWDao; -import com.szpg.db.data.PgYWAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgYWDaoImpl implements PgYWDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgYWAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(0); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); - - return ywalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgYWAlm ywalm) { - return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_YW_ALM " + - "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入爆管液位报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgYwDaoImpl.java b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java new file mode 100644 index 0000000..c68faa3 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgYwDao; +import com.szpg.db.data.PgYwAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgYwDaoImpl implements PgYwDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgYwAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(0); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); + + return ywalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgYwAlm ywalm) { + return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_YW_ALM " + + "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入爆管液位报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgDSAlm.java b/src/com/szpg/db/data/PgDSAlm.java deleted file mode 100644 index 86e28bb..0000000 --- a/src/com/szpg/db/data/PgDSAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 对射报警状态数据表 - * - * @author admin - * - */ -public class PgDSAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = -8336945265752238748L; - - private Integer id; - private Boolean dsalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getDsalm() { - return dsalm; - } - - public void setDsalm(Boolean dsalm) { - this.dsalm = dsalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgDsAlm.java b/src/com/szpg/db/data/PgDsAlm.java new file mode 100644 index 0000000..224d029 --- /dev/null +++ b/src/com/szpg/db/data/PgDsAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 对射报警状态数据表 + * + * @author admin + * + */ +public class PgDsAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -8336945265752238748L; + + private Integer id; + private Boolean dsalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getDsalm() { + return dsalm; + } + + public void setDsalm(Boolean dsalm) { + this.dsalm = dsalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjRt.java b/src/com/szpg/db/data/PgFjRt.java new file mode 100644 index 0000000..cfb502b --- /dev/null +++ b/src/com/szpg/db/data/PgFjRt.java @@ -0,0 +1,105 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.NumberFormat; +import com.szpg.util.TimeFormat; + +/** + * 风机累计运行时长数据表 + * + * @author admin + * + */ +public class PgFjRt implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3467596631537217402L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Integer runsecond; + private Integer runhour; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Integer getRunsecond() { + return runsecond; + } + + public void setRunsecond(Integer runsecond) { + this.runsecond = runsecond; + } + + public Integer getRunhour() { + return runhour; + } + + public void setRunhour(Integer runhour) { + this.runhour = runhour; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + public String getAccRunTime() { + return NumberFormat.format(runhour + runsecond / 3600, "0.00"); + } + + @Override + public String toString() { + return "PgFjRt[acc=" + getAccRunTime() + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjStat.java b/src/com/szpg/db/data/PgFjStat.java new file mode 100644 index 0000000..a9ade35 --- /dev/null +++ b/src/com/szpg/db/data/PgFjStat.java @@ -0,0 +1,136 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 风机运行状态数据表 + * + * @author admin + * + */ +public class PgFjStat implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3826912263791110981L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Boolean am; //就地/远控标志位 + private Boolean run; //运行状态标志位 + private Boolean flt; //故障报警 + private Boolean en; //手自动使能标志位 + private Boolean no; //禁止操作标志位 + private Boolean rout; //启停超时标志位 + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Boolean getAm() { + return am; + } + + public void setAm(Boolean am) { + this.am = am; + } + + public Boolean getRun() { + return run; + } + + public void setRun(Boolean run) { + this.run = run; + } + + public Boolean getFlt() { + return flt; + } + + public void setFlt(Boolean flt) { + this.flt = flt; + } + + public Boolean getEn() { + return en; + } + + public void setEn(Boolean en) { + this.en = en; + } + + public Boolean getNo() { + return no; + } + + public void setNo(Boolean no) { + this.no = no; + } + + public Boolean getRout() { + return rout; + } + + public void setRout(Boolean rout) { + this.rout = rout; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgFjStat[run=" + run + ", flt=" + flt + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgYWAlm.java b/src/com/szpg/db/data/PgYWAlm.java deleted file mode 100644 index 9d9572f..0000000 --- a/src/com/szpg/db/data/PgYWAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 爆管液位浓度报警状态数据表 - * - * @author admin - * - */ -public class PgYWAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = 3882791834818808488L; - - private Integer id; - private Boolean ywalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getYwalm() { - return ywalm; - } - - public void setYwalm(Boolean ywalm) { - this.ywalm = ywalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgYwAlm.java b/src/com/szpg/db/data/PgYwAlm.java new file mode 100644 index 0000000..44e831b --- /dev/null +++ b/src/com/szpg/db/data/PgYwAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 爆管液位浓度报警状态数据表 + * + * @author admin + * + */ +public class PgYwAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = 3882791834818808488L; + + private Integer id; + private Boolean ywalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getYwalm() { + return ywalm; + } + + public void setYwalm(Boolean ywalm) { + this.ywalm = ywalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/plc/message/AppMessageConstants.java b/src/com/szpg/plc/message/AppMessageConstants.java index 1c84086..bedec39 100644 --- a/src/com/szpg/plc/message/AppMessageConstants.java +++ b/src/com/szpg/plc/message/AppMessageConstants.java @@ -16,4 +16,6 @@ public final static String CMD_TYPE_READYWSTATUS = "21"; //读取爆管液位报警状态命令 public final static String CMD_TYPE_READDSSTATUS = "22"; //读取对射报警状态命令 + public final static String CMD_TYPE_READFJSTAT = "23"; //读取风机运行状态命令 + public final static String CMD_TYPE_READFJRUNTIME = "24"; //读取风机运行时长命令 } diff --git a/src/com/szpg/plc/message/command/ReadMemoryCommand.java b/src/com/szpg/plc/message/command/ReadMemoryCommand.java index 3678a16..67c1a63 100644 --- a/src/com/szpg/plc/message/command/ReadMemoryCommand.java +++ b/src/com/szpg/plc/message/command/ReadMemoryCommand.java @@ -6,6 +6,8 @@ import com.szpg.plc.message.command.read.ReadCOStatusCommand; import com.szpg.plc.message.command.read.ReadCOValueCommand; import com.szpg.plc.message.command.read.ReadDSStatusCommand; +import com.szpg.plc.message.command.read.ReadFjRtCommand; +import com.szpg.plc.message.command.read.ReadFjStatCommand; import com.szpg.plc.message.command.read.ReadHSStatusCommand; import com.szpg.plc.message.command.read.ReadHSValueCommand; import com.szpg.plc.message.command.read.ReadO2StatusCommand; @@ -109,6 +111,11 @@ case AppMessageConstants.CMD_TYPE_READDSSTATUS: return new ReadDSStatusCommand(); + + case AppMessageConstants.CMD_TYPE_READFJSTAT: + return new ReadFjStatCommand(); + case AppMessageConstants.CMD_TYPE_READFJRUNTIME: + return new ReadFjRtCommand(); default: return null; diff --git a/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java b/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java new file mode 100644 index 0000000..88f7016 --- /dev/null +++ b/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java @@ -0,0 +1,29 @@ +package com.szpg.plc.message.command.read; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.message.response.read.ReadFjRtCommandResponse; + +public class ReadFjRtCommand extends ReadMemoryCommand { + + /** + * + */ + private static final long serialVersionUID = -8726665168808135207L; + + @Override + public Class getResponseClass() { + return ReadFjRtCommandResponse.class; + } + + @Override + public String toString() { + return "向终端[" + getDestinationId() + "]发送查询风机累计运行时长命令"; + } + + @Override + public String getCommandType() { + return AppMessageConstants.CMD_TYPE_READFJRUNTIME; + } + +} diff --git a/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java b/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java new file mode 100644 index 0000000..bb995b7 --- /dev/null +++ b/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java @@ -0,0 +1,29 @@ +package com.szpg.plc.message.command.read; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.message.response.read.ReadFjStatCommandResponse; + +public class ReadFjStatCommand extends ReadMemoryCommand { + + /** + * + */ + private static final long serialVersionUID = -4572411641346032487L; + + @Override + public Class getResponseClass() { + return ReadFjStatCommandResponse.class; + } + + @Override + public String toString() { + return "向终端[" + getDestinationId() + "]发送查询风机运行状态命令"; + } + + @Override + public String getCommandType() { + return AppMessageConstants.CMD_TYPE_READFJSTAT; + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java index e2b476b..df088df 100644 --- a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java @@ -3,9 +3,9 @@ import java.util.ArrayList; import java.util.List; -import com.szpg.db.dao.PgDSDao; +import com.szpg.db.dao.PgDsDao; import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgDSDaoImpl; +import com.szpg.db.dao.impl.PgDsDaoImpl; import com.szpg.db.dao.impl.PgDeviceDaoImpl; import com.szpg.plc.message.response.ReadMemoryCommandResponse; import com.szpg.util.TimeFormat; @@ -34,7 +34,7 @@ @Override public void afterAction() { // 1将对射报警数据存入数据库 - PgDSDao dsDao = new PgDSDaoImpl(); + PgDsDao dsDao = new PgDsDaoImpl(); PgDeviceDao deviceDao = new PgDeviceDaoImpl(); List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "DS"); diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgFjDaoImpl.java b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java new file mode 100644 index 0000000..cbab4c5 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java @@ -0,0 +1,469 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; +import com.szpg.db.util.ConnectionManager; + +public class PgFjDaoImpl implements PgFjDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgFjRt findLatestRtByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, RUNSECOND, RUNHOUR FROM PG_FJ_RT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjRt rt = new PgFjRt(); + Object[] item = tempList.get(0); + + rt.setId(((Number) item[0]).intValue()); + rt.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + rt.setLogtime(cal.getTime()); + rt.setUptime(cal.getTime()); + + rt.setRunsecond(Integer.parseInt((String) item[3])); + rt.setRunhour(Integer.parseInt((String) item[4])); + + logger.debug("根据ID查询风机最新运行时长成功" + rt + "]"); + + return rt; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addRtRecord(PgFjRt fjrt) { + return addRtRecord(fjrt.getRunsecond(), fjrt.getRunhour(), fjrt.getTmStr(), fjrt.getPgdeviceid()); + } + + @Override + public int addRtRecord(int second, int hour, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_RT " + + "(RUNSECOND, RUNHOUR, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = second; + params[1] = hour; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行时长成功[tm=" + tm + ", second=" + second + ", hour=" + hour + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行时长失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllStat() { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findStatById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findLatestStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机最新运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addStatRecord(PgFjStat fjstat) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(AM, RUN, FLT, EN, NO, ROUT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, ?, ?, ?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[9]; + params[0] = fjstat.getAm(); + params[1] = fjstat.getRun(); + params[2] = fjstat.getFlt(); + params[3] = fjstat.getEn(); + params[4] = fjstat.getNo(); + params[5] = fjstat.getRout(); + params[6] = fjstat.getTmStr(); + params[7] = fjstat.getTmStr(); + params[8] = fjstat.getPgdeviceid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功" + fjstat); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(RUN, FLT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = run; + params[1] = flt; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功[tm=" + tm + ", run=" + run + ", flt=" + flt + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java b/src/com/szpg/db/dao/impl/PgYWDaoImpl.java deleted file mode 100644 index 613c4c0..0000000 --- a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgYWDao; -import com.szpg.db.data.PgYWAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgYWDaoImpl implements PgYWDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgYWAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(0); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); - - return ywalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgYWAlm ywalm) { - return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_YW_ALM " + - "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入爆管液位报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgYwDaoImpl.java b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java new file mode 100644 index 0000000..c68faa3 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgYwDao; +import com.szpg.db.data.PgYwAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgYwDaoImpl implements PgYwDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgYwAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(0); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); + + return ywalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgYwAlm ywalm) { + return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_YW_ALM " + + "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入爆管液位报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgDSAlm.java b/src/com/szpg/db/data/PgDSAlm.java deleted file mode 100644 index 86e28bb..0000000 --- a/src/com/szpg/db/data/PgDSAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 对射报警状态数据表 - * - * @author admin - * - */ -public class PgDSAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = -8336945265752238748L; - - private Integer id; - private Boolean dsalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getDsalm() { - return dsalm; - } - - public void setDsalm(Boolean dsalm) { - this.dsalm = dsalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgDsAlm.java b/src/com/szpg/db/data/PgDsAlm.java new file mode 100644 index 0000000..224d029 --- /dev/null +++ b/src/com/szpg/db/data/PgDsAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 对射报警状态数据表 + * + * @author admin + * + */ +public class PgDsAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -8336945265752238748L; + + private Integer id; + private Boolean dsalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getDsalm() { + return dsalm; + } + + public void setDsalm(Boolean dsalm) { + this.dsalm = dsalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjRt.java b/src/com/szpg/db/data/PgFjRt.java new file mode 100644 index 0000000..cfb502b --- /dev/null +++ b/src/com/szpg/db/data/PgFjRt.java @@ -0,0 +1,105 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.NumberFormat; +import com.szpg.util.TimeFormat; + +/** + * 风机累计运行时长数据表 + * + * @author admin + * + */ +public class PgFjRt implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3467596631537217402L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Integer runsecond; + private Integer runhour; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Integer getRunsecond() { + return runsecond; + } + + public void setRunsecond(Integer runsecond) { + this.runsecond = runsecond; + } + + public Integer getRunhour() { + return runhour; + } + + public void setRunhour(Integer runhour) { + this.runhour = runhour; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + public String getAccRunTime() { + return NumberFormat.format(runhour + runsecond / 3600, "0.00"); + } + + @Override + public String toString() { + return "PgFjRt[acc=" + getAccRunTime() + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjStat.java b/src/com/szpg/db/data/PgFjStat.java new file mode 100644 index 0000000..a9ade35 --- /dev/null +++ b/src/com/szpg/db/data/PgFjStat.java @@ -0,0 +1,136 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 风机运行状态数据表 + * + * @author admin + * + */ +public class PgFjStat implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3826912263791110981L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Boolean am; //就地/远控标志位 + private Boolean run; //运行状态标志位 + private Boolean flt; //故障报警 + private Boolean en; //手自动使能标志位 + private Boolean no; //禁止操作标志位 + private Boolean rout; //启停超时标志位 + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Boolean getAm() { + return am; + } + + public void setAm(Boolean am) { + this.am = am; + } + + public Boolean getRun() { + return run; + } + + public void setRun(Boolean run) { + this.run = run; + } + + public Boolean getFlt() { + return flt; + } + + public void setFlt(Boolean flt) { + this.flt = flt; + } + + public Boolean getEn() { + return en; + } + + public void setEn(Boolean en) { + this.en = en; + } + + public Boolean getNo() { + return no; + } + + public void setNo(Boolean no) { + this.no = no; + } + + public Boolean getRout() { + return rout; + } + + public void setRout(Boolean rout) { + this.rout = rout; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgFjStat[run=" + run + ", flt=" + flt + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgYWAlm.java b/src/com/szpg/db/data/PgYWAlm.java deleted file mode 100644 index 9d9572f..0000000 --- a/src/com/szpg/db/data/PgYWAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 爆管液位浓度报警状态数据表 - * - * @author admin - * - */ -public class PgYWAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = 3882791834818808488L; - - private Integer id; - private Boolean ywalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getYwalm() { - return ywalm; - } - - public void setYwalm(Boolean ywalm) { - this.ywalm = ywalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgYwAlm.java b/src/com/szpg/db/data/PgYwAlm.java new file mode 100644 index 0000000..44e831b --- /dev/null +++ b/src/com/szpg/db/data/PgYwAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 爆管液位浓度报警状态数据表 + * + * @author admin + * + */ +public class PgYwAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = 3882791834818808488L; + + private Integer id; + private Boolean ywalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getYwalm() { + return ywalm; + } + + public void setYwalm(Boolean ywalm) { + this.ywalm = ywalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/plc/message/AppMessageConstants.java b/src/com/szpg/plc/message/AppMessageConstants.java index 1c84086..bedec39 100644 --- a/src/com/szpg/plc/message/AppMessageConstants.java +++ b/src/com/szpg/plc/message/AppMessageConstants.java @@ -16,4 +16,6 @@ public final static String CMD_TYPE_READYWSTATUS = "21"; //读取爆管液位报警状态命令 public final static String CMD_TYPE_READDSSTATUS = "22"; //读取对射报警状态命令 + public final static String CMD_TYPE_READFJSTAT = "23"; //读取风机运行状态命令 + public final static String CMD_TYPE_READFJRUNTIME = "24"; //读取风机运行时长命令 } diff --git a/src/com/szpg/plc/message/command/ReadMemoryCommand.java b/src/com/szpg/plc/message/command/ReadMemoryCommand.java index 3678a16..67c1a63 100644 --- a/src/com/szpg/plc/message/command/ReadMemoryCommand.java +++ b/src/com/szpg/plc/message/command/ReadMemoryCommand.java @@ -6,6 +6,8 @@ import com.szpg.plc.message.command.read.ReadCOStatusCommand; import com.szpg.plc.message.command.read.ReadCOValueCommand; import com.szpg.plc.message.command.read.ReadDSStatusCommand; +import com.szpg.plc.message.command.read.ReadFjRtCommand; +import com.szpg.plc.message.command.read.ReadFjStatCommand; import com.szpg.plc.message.command.read.ReadHSStatusCommand; import com.szpg.plc.message.command.read.ReadHSValueCommand; import com.szpg.plc.message.command.read.ReadO2StatusCommand; @@ -109,6 +111,11 @@ case AppMessageConstants.CMD_TYPE_READDSSTATUS: return new ReadDSStatusCommand(); + + case AppMessageConstants.CMD_TYPE_READFJSTAT: + return new ReadFjStatCommand(); + case AppMessageConstants.CMD_TYPE_READFJRUNTIME: + return new ReadFjRtCommand(); default: return null; diff --git a/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java b/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java new file mode 100644 index 0000000..88f7016 --- /dev/null +++ b/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java @@ -0,0 +1,29 @@ +package com.szpg.plc.message.command.read; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.message.response.read.ReadFjRtCommandResponse; + +public class ReadFjRtCommand extends ReadMemoryCommand { + + /** + * + */ + private static final long serialVersionUID = -8726665168808135207L; + + @Override + public Class getResponseClass() { + return ReadFjRtCommandResponse.class; + } + + @Override + public String toString() { + return "向终端[" + getDestinationId() + "]发送查询风机累计运行时长命令"; + } + + @Override + public String getCommandType() { + return AppMessageConstants.CMD_TYPE_READFJRUNTIME; + } + +} diff --git a/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java b/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java new file mode 100644 index 0000000..bb995b7 --- /dev/null +++ b/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java @@ -0,0 +1,29 @@ +package com.szpg.plc.message.command.read; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.message.response.read.ReadFjStatCommandResponse; + +public class ReadFjStatCommand extends ReadMemoryCommand { + + /** + * + */ + private static final long serialVersionUID = -4572411641346032487L; + + @Override + public Class getResponseClass() { + return ReadFjStatCommandResponse.class; + } + + @Override + public String toString() { + return "向终端[" + getDestinationId() + "]发送查询风机运行状态命令"; + } + + @Override + public String getCommandType() { + return AppMessageConstants.CMD_TYPE_READFJSTAT; + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java index e2b476b..df088df 100644 --- a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java @@ -3,9 +3,9 @@ import java.util.ArrayList; import java.util.List; -import com.szpg.db.dao.PgDSDao; +import com.szpg.db.dao.PgDsDao; import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgDSDaoImpl; +import com.szpg.db.dao.impl.PgDsDaoImpl; import com.szpg.db.dao.impl.PgDeviceDaoImpl; import com.szpg.plc.message.response.ReadMemoryCommandResponse; import com.szpg.util.TimeFormat; @@ -34,7 +34,7 @@ @Override public void afterAction() { // 1将对射报警数据存入数据库 - PgDSDao dsDao = new PgDSDaoImpl(); + PgDsDao dsDao = new PgDsDaoImpl(); PgDeviceDao deviceDao = new PgDeviceDaoImpl(); List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "DS"); diff --git a/src/com/szpg/plc/message/response/read/ReadFjRtCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadFjRtCommandResponse.java new file mode 100644 index 0000000..e1565f2 --- /dev/null +++ b/src/com/szpg/plc/message/response/read/ReadFjRtCommandResponse.java @@ -0,0 +1,59 @@ +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.impl.PgFjDaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.util.TimeFormat; + +public class ReadFjRtCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8310205838594006103L; + + private List fjscs; // 风机运行时长——秒数 + private List fjsch; // 风机运行时长——小时数 + + public ReadFjRtCommandResponse() { + fjscs = new ArrayList(); + fjsch = new ArrayList(); + } + + public List getFjscs() { + return fjscs; + } + + public void setFjscs(List fjscs) { + this.fjscs = fjscs; + } + + public List getFjsch() { + return fjsch; + } + + public void setFjsch(List fjsch) { + this.fjsch = fjsch; + } + + @Override + public void afterAction() { + // 1将风机累计运行时长数据存入数据库 + PgFjDao fjDao = new PgFjDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "FJ"); + + for (int i = 0; i < fjscs.size(); i++) { + if (i < ids.size()) { + fjDao.addRtRecord(fjscs.get(i), fjsch.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), ids.get(i)); + } + } + } + +} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgFjDaoImpl.java b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java new file mode 100644 index 0000000..cbab4c5 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java @@ -0,0 +1,469 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; +import com.szpg.db.util.ConnectionManager; + +public class PgFjDaoImpl implements PgFjDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgFjRt findLatestRtByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, RUNSECOND, RUNHOUR FROM PG_FJ_RT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjRt rt = new PgFjRt(); + Object[] item = tempList.get(0); + + rt.setId(((Number) item[0]).intValue()); + rt.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + rt.setLogtime(cal.getTime()); + rt.setUptime(cal.getTime()); + + rt.setRunsecond(Integer.parseInt((String) item[3])); + rt.setRunhour(Integer.parseInt((String) item[4])); + + logger.debug("根据ID查询风机最新运行时长成功" + rt + "]"); + + return rt; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addRtRecord(PgFjRt fjrt) { + return addRtRecord(fjrt.getRunsecond(), fjrt.getRunhour(), fjrt.getTmStr(), fjrt.getPgdeviceid()); + } + + @Override + public int addRtRecord(int second, int hour, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_RT " + + "(RUNSECOND, RUNHOUR, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = second; + params[1] = hour; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行时长成功[tm=" + tm + ", second=" + second + ", hour=" + hour + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行时长失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllStat() { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findStatById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findLatestStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机最新运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addStatRecord(PgFjStat fjstat) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(AM, RUN, FLT, EN, NO, ROUT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, ?, ?, ?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[9]; + params[0] = fjstat.getAm(); + params[1] = fjstat.getRun(); + params[2] = fjstat.getFlt(); + params[3] = fjstat.getEn(); + params[4] = fjstat.getNo(); + params[5] = fjstat.getRout(); + params[6] = fjstat.getTmStr(); + params[7] = fjstat.getTmStr(); + params[8] = fjstat.getPgdeviceid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功" + fjstat); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(RUN, FLT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = run; + params[1] = flt; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功[tm=" + tm + ", run=" + run + ", flt=" + flt + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java b/src/com/szpg/db/dao/impl/PgYWDaoImpl.java deleted file mode 100644 index 613c4c0..0000000 --- a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgYWDao; -import com.szpg.db.data.PgYWAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgYWDaoImpl implements PgYWDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgYWAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(0); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); - - return ywalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgYWAlm ywalm) { - return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_YW_ALM " + - "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入爆管液位报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgYwDaoImpl.java b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java new file mode 100644 index 0000000..c68faa3 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgYwDao; +import com.szpg.db.data.PgYwAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgYwDaoImpl implements PgYwDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgYwAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(0); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); + + return ywalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgYwAlm ywalm) { + return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_YW_ALM " + + "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入爆管液位报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgDSAlm.java b/src/com/szpg/db/data/PgDSAlm.java deleted file mode 100644 index 86e28bb..0000000 --- a/src/com/szpg/db/data/PgDSAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 对射报警状态数据表 - * - * @author admin - * - */ -public class PgDSAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = -8336945265752238748L; - - private Integer id; - private Boolean dsalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getDsalm() { - return dsalm; - } - - public void setDsalm(Boolean dsalm) { - this.dsalm = dsalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgDsAlm.java b/src/com/szpg/db/data/PgDsAlm.java new file mode 100644 index 0000000..224d029 --- /dev/null +++ b/src/com/szpg/db/data/PgDsAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 对射报警状态数据表 + * + * @author admin + * + */ +public class PgDsAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -8336945265752238748L; + + private Integer id; + private Boolean dsalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getDsalm() { + return dsalm; + } + + public void setDsalm(Boolean dsalm) { + this.dsalm = dsalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjRt.java b/src/com/szpg/db/data/PgFjRt.java new file mode 100644 index 0000000..cfb502b --- /dev/null +++ b/src/com/szpg/db/data/PgFjRt.java @@ -0,0 +1,105 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.NumberFormat; +import com.szpg.util.TimeFormat; + +/** + * 风机累计运行时长数据表 + * + * @author admin + * + */ +public class PgFjRt implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3467596631537217402L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Integer runsecond; + private Integer runhour; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Integer getRunsecond() { + return runsecond; + } + + public void setRunsecond(Integer runsecond) { + this.runsecond = runsecond; + } + + public Integer getRunhour() { + return runhour; + } + + public void setRunhour(Integer runhour) { + this.runhour = runhour; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + public String getAccRunTime() { + return NumberFormat.format(runhour + runsecond / 3600, "0.00"); + } + + @Override + public String toString() { + return "PgFjRt[acc=" + getAccRunTime() + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjStat.java b/src/com/szpg/db/data/PgFjStat.java new file mode 100644 index 0000000..a9ade35 --- /dev/null +++ b/src/com/szpg/db/data/PgFjStat.java @@ -0,0 +1,136 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 风机运行状态数据表 + * + * @author admin + * + */ +public class PgFjStat implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3826912263791110981L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Boolean am; //就地/远控标志位 + private Boolean run; //运行状态标志位 + private Boolean flt; //故障报警 + private Boolean en; //手自动使能标志位 + private Boolean no; //禁止操作标志位 + private Boolean rout; //启停超时标志位 + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Boolean getAm() { + return am; + } + + public void setAm(Boolean am) { + this.am = am; + } + + public Boolean getRun() { + return run; + } + + public void setRun(Boolean run) { + this.run = run; + } + + public Boolean getFlt() { + return flt; + } + + public void setFlt(Boolean flt) { + this.flt = flt; + } + + public Boolean getEn() { + return en; + } + + public void setEn(Boolean en) { + this.en = en; + } + + public Boolean getNo() { + return no; + } + + public void setNo(Boolean no) { + this.no = no; + } + + public Boolean getRout() { + return rout; + } + + public void setRout(Boolean rout) { + this.rout = rout; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgFjStat[run=" + run + ", flt=" + flt + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgYWAlm.java b/src/com/szpg/db/data/PgYWAlm.java deleted file mode 100644 index 9d9572f..0000000 --- a/src/com/szpg/db/data/PgYWAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 爆管液位浓度报警状态数据表 - * - * @author admin - * - */ -public class PgYWAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = 3882791834818808488L; - - private Integer id; - private Boolean ywalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getYwalm() { - return ywalm; - } - - public void setYwalm(Boolean ywalm) { - this.ywalm = ywalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgYwAlm.java b/src/com/szpg/db/data/PgYwAlm.java new file mode 100644 index 0000000..44e831b --- /dev/null +++ b/src/com/szpg/db/data/PgYwAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 爆管液位浓度报警状态数据表 + * + * @author admin + * + */ +public class PgYwAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = 3882791834818808488L; + + private Integer id; + private Boolean ywalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getYwalm() { + return ywalm; + } + + public void setYwalm(Boolean ywalm) { + this.ywalm = ywalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/plc/message/AppMessageConstants.java b/src/com/szpg/plc/message/AppMessageConstants.java index 1c84086..bedec39 100644 --- a/src/com/szpg/plc/message/AppMessageConstants.java +++ b/src/com/szpg/plc/message/AppMessageConstants.java @@ -16,4 +16,6 @@ public final static String CMD_TYPE_READYWSTATUS = "21"; //读取爆管液位报警状态命令 public final static String CMD_TYPE_READDSSTATUS = "22"; //读取对射报警状态命令 + public final static String CMD_TYPE_READFJSTAT = "23"; //读取风机运行状态命令 + public final static String CMD_TYPE_READFJRUNTIME = "24"; //读取风机运行时长命令 } diff --git a/src/com/szpg/plc/message/command/ReadMemoryCommand.java b/src/com/szpg/plc/message/command/ReadMemoryCommand.java index 3678a16..67c1a63 100644 --- a/src/com/szpg/plc/message/command/ReadMemoryCommand.java +++ b/src/com/szpg/plc/message/command/ReadMemoryCommand.java @@ -6,6 +6,8 @@ import com.szpg.plc.message.command.read.ReadCOStatusCommand; import com.szpg.plc.message.command.read.ReadCOValueCommand; import com.szpg.plc.message.command.read.ReadDSStatusCommand; +import com.szpg.plc.message.command.read.ReadFjRtCommand; +import com.szpg.plc.message.command.read.ReadFjStatCommand; import com.szpg.plc.message.command.read.ReadHSStatusCommand; import com.szpg.plc.message.command.read.ReadHSValueCommand; import com.szpg.plc.message.command.read.ReadO2StatusCommand; @@ -109,6 +111,11 @@ case AppMessageConstants.CMD_TYPE_READDSSTATUS: return new ReadDSStatusCommand(); + + case AppMessageConstants.CMD_TYPE_READFJSTAT: + return new ReadFjStatCommand(); + case AppMessageConstants.CMD_TYPE_READFJRUNTIME: + return new ReadFjRtCommand(); default: return null; diff --git a/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java b/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java new file mode 100644 index 0000000..88f7016 --- /dev/null +++ b/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java @@ -0,0 +1,29 @@ +package com.szpg.plc.message.command.read; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.message.response.read.ReadFjRtCommandResponse; + +public class ReadFjRtCommand extends ReadMemoryCommand { + + /** + * + */ + private static final long serialVersionUID = -8726665168808135207L; + + @Override + public Class getResponseClass() { + return ReadFjRtCommandResponse.class; + } + + @Override + public String toString() { + return "向终端[" + getDestinationId() + "]发送查询风机累计运行时长命令"; + } + + @Override + public String getCommandType() { + return AppMessageConstants.CMD_TYPE_READFJRUNTIME; + } + +} diff --git a/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java b/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java new file mode 100644 index 0000000..bb995b7 --- /dev/null +++ b/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java @@ -0,0 +1,29 @@ +package com.szpg.plc.message.command.read; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.message.response.read.ReadFjStatCommandResponse; + +public class ReadFjStatCommand extends ReadMemoryCommand { + + /** + * + */ + private static final long serialVersionUID = -4572411641346032487L; + + @Override + public Class getResponseClass() { + return ReadFjStatCommandResponse.class; + } + + @Override + public String toString() { + return "向终端[" + getDestinationId() + "]发送查询风机运行状态命令"; + } + + @Override + public String getCommandType() { + return AppMessageConstants.CMD_TYPE_READFJSTAT; + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java index e2b476b..df088df 100644 --- a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java @@ -3,9 +3,9 @@ import java.util.ArrayList; import java.util.List; -import com.szpg.db.dao.PgDSDao; +import com.szpg.db.dao.PgDsDao; import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgDSDaoImpl; +import com.szpg.db.dao.impl.PgDsDaoImpl; import com.szpg.db.dao.impl.PgDeviceDaoImpl; import com.szpg.plc.message.response.ReadMemoryCommandResponse; import com.szpg.util.TimeFormat; @@ -34,7 +34,7 @@ @Override public void afterAction() { // 1将对射报警数据存入数据库 - PgDSDao dsDao = new PgDSDaoImpl(); + PgDsDao dsDao = new PgDsDaoImpl(); PgDeviceDao deviceDao = new PgDeviceDaoImpl(); List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "DS"); diff --git a/src/com/szpg/plc/message/response/read/ReadFjRtCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadFjRtCommandResponse.java new file mode 100644 index 0000000..e1565f2 --- /dev/null +++ b/src/com/szpg/plc/message/response/read/ReadFjRtCommandResponse.java @@ -0,0 +1,59 @@ +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.impl.PgFjDaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.util.TimeFormat; + +public class ReadFjRtCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8310205838594006103L; + + private List fjscs; // 风机运行时长——秒数 + private List fjsch; // 风机运行时长——小时数 + + public ReadFjRtCommandResponse() { + fjscs = new ArrayList(); + fjsch = new ArrayList(); + } + + public List getFjscs() { + return fjscs; + } + + public void setFjscs(List fjscs) { + this.fjscs = fjscs; + } + + public List getFjsch() { + return fjsch; + } + + public void setFjsch(List fjsch) { + this.fjsch = fjsch; + } + + @Override + public void afterAction() { + // 1将风机累计运行时长数据存入数据库 + PgFjDao fjDao = new PgFjDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "FJ"); + + for (int i = 0; i < fjscs.size(); i++) { + if (i < ids.size()) { + fjDao.addRtRecord(fjscs.get(i), fjsch.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), ids.get(i)); + } + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java new file mode 100644 index 0000000..15bccaa --- /dev/null +++ b/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java @@ -0,0 +1,59 @@ +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgFjDaoImpl; +import com.szpg.db.data.PgFjStat; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; + +public class ReadFjStatCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6983756717484259517L; + + private List fjzt; + + public ReadFjStatCommandResponse() { + fjzt = new ArrayList(); + } + + public List getFjzt() { + return fjzt; + } + + public void setFjzt(List fjzt) { + this.fjzt = fjzt; + } + + @Override + public void afterAction() { + // 1将风机运行状态数据存入数据库 + PgFjDao fjDao = new PgFjDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "FJ"); + + for (int i = 0; i < fjzt.size(); i++) { + if (i < ids.size()) { + fjzt.get(i).setPgdeviceid(ids.get(i)); + fjzt.get(i).setTm(this.getTime().getTime()); + fjDao.addStatRecord(fjzt.get(i)); + + // 有报警状态 + if (fjzt.get(i).getFlt() == true) { + // TODO + // 1存入报警管理表 + + + } + } + } + } + +} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgFjDaoImpl.java b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java new file mode 100644 index 0000000..cbab4c5 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java @@ -0,0 +1,469 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; +import com.szpg.db.util.ConnectionManager; + +public class PgFjDaoImpl implements PgFjDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgFjRt findLatestRtByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, RUNSECOND, RUNHOUR FROM PG_FJ_RT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjRt rt = new PgFjRt(); + Object[] item = tempList.get(0); + + rt.setId(((Number) item[0]).intValue()); + rt.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + rt.setLogtime(cal.getTime()); + rt.setUptime(cal.getTime()); + + rt.setRunsecond(Integer.parseInt((String) item[3])); + rt.setRunhour(Integer.parseInt((String) item[4])); + + logger.debug("根据ID查询风机最新运行时长成功" + rt + "]"); + + return rt; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addRtRecord(PgFjRt fjrt) { + return addRtRecord(fjrt.getRunsecond(), fjrt.getRunhour(), fjrt.getTmStr(), fjrt.getPgdeviceid()); + } + + @Override + public int addRtRecord(int second, int hour, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_RT " + + "(RUNSECOND, RUNHOUR, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = second; + params[1] = hour; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行时长成功[tm=" + tm + ", second=" + second + ", hour=" + hour + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行时长失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllStat() { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findStatById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findLatestStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机最新运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addStatRecord(PgFjStat fjstat) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(AM, RUN, FLT, EN, NO, ROUT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, ?, ?, ?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[9]; + params[0] = fjstat.getAm(); + params[1] = fjstat.getRun(); + params[2] = fjstat.getFlt(); + params[3] = fjstat.getEn(); + params[4] = fjstat.getNo(); + params[5] = fjstat.getRout(); + params[6] = fjstat.getTmStr(); + params[7] = fjstat.getTmStr(); + params[8] = fjstat.getPgdeviceid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功" + fjstat); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(RUN, FLT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = run; + params[1] = flt; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功[tm=" + tm + ", run=" + run + ", flt=" + flt + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java b/src/com/szpg/db/dao/impl/PgYWDaoImpl.java deleted file mode 100644 index 613c4c0..0000000 --- a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgYWDao; -import com.szpg.db.data.PgYWAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgYWDaoImpl implements PgYWDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgYWAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(0); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); - - return ywalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgYWAlm ywalm) { - return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_YW_ALM " + - "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入爆管液位报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgYwDaoImpl.java b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java new file mode 100644 index 0000000..c68faa3 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgYwDao; +import com.szpg.db.data.PgYwAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgYwDaoImpl implements PgYwDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgYwAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(0); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); + + return ywalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgYwAlm ywalm) { + return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_YW_ALM " + + "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入爆管液位报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgDSAlm.java b/src/com/szpg/db/data/PgDSAlm.java deleted file mode 100644 index 86e28bb..0000000 --- a/src/com/szpg/db/data/PgDSAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 对射报警状态数据表 - * - * @author admin - * - */ -public class PgDSAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = -8336945265752238748L; - - private Integer id; - private Boolean dsalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getDsalm() { - return dsalm; - } - - public void setDsalm(Boolean dsalm) { - this.dsalm = dsalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgDsAlm.java b/src/com/szpg/db/data/PgDsAlm.java new file mode 100644 index 0000000..224d029 --- /dev/null +++ b/src/com/szpg/db/data/PgDsAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 对射报警状态数据表 + * + * @author admin + * + */ +public class PgDsAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -8336945265752238748L; + + private Integer id; + private Boolean dsalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getDsalm() { + return dsalm; + } + + public void setDsalm(Boolean dsalm) { + this.dsalm = dsalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjRt.java b/src/com/szpg/db/data/PgFjRt.java new file mode 100644 index 0000000..cfb502b --- /dev/null +++ b/src/com/szpg/db/data/PgFjRt.java @@ -0,0 +1,105 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.NumberFormat; +import com.szpg.util.TimeFormat; + +/** + * 风机累计运行时长数据表 + * + * @author admin + * + */ +public class PgFjRt implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3467596631537217402L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Integer runsecond; + private Integer runhour; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Integer getRunsecond() { + return runsecond; + } + + public void setRunsecond(Integer runsecond) { + this.runsecond = runsecond; + } + + public Integer getRunhour() { + return runhour; + } + + public void setRunhour(Integer runhour) { + this.runhour = runhour; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + public String getAccRunTime() { + return NumberFormat.format(runhour + runsecond / 3600, "0.00"); + } + + @Override + public String toString() { + return "PgFjRt[acc=" + getAccRunTime() + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjStat.java b/src/com/szpg/db/data/PgFjStat.java new file mode 100644 index 0000000..a9ade35 --- /dev/null +++ b/src/com/szpg/db/data/PgFjStat.java @@ -0,0 +1,136 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 风机运行状态数据表 + * + * @author admin + * + */ +public class PgFjStat implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3826912263791110981L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Boolean am; //就地/远控标志位 + private Boolean run; //运行状态标志位 + private Boolean flt; //故障报警 + private Boolean en; //手自动使能标志位 + private Boolean no; //禁止操作标志位 + private Boolean rout; //启停超时标志位 + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Boolean getAm() { + return am; + } + + public void setAm(Boolean am) { + this.am = am; + } + + public Boolean getRun() { + return run; + } + + public void setRun(Boolean run) { + this.run = run; + } + + public Boolean getFlt() { + return flt; + } + + public void setFlt(Boolean flt) { + this.flt = flt; + } + + public Boolean getEn() { + return en; + } + + public void setEn(Boolean en) { + this.en = en; + } + + public Boolean getNo() { + return no; + } + + public void setNo(Boolean no) { + this.no = no; + } + + public Boolean getRout() { + return rout; + } + + public void setRout(Boolean rout) { + this.rout = rout; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgFjStat[run=" + run + ", flt=" + flt + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgYWAlm.java b/src/com/szpg/db/data/PgYWAlm.java deleted file mode 100644 index 9d9572f..0000000 --- a/src/com/szpg/db/data/PgYWAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 爆管液位浓度报警状态数据表 - * - * @author admin - * - */ -public class PgYWAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = 3882791834818808488L; - - private Integer id; - private Boolean ywalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getYwalm() { - return ywalm; - } - - public void setYwalm(Boolean ywalm) { - this.ywalm = ywalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgYwAlm.java b/src/com/szpg/db/data/PgYwAlm.java new file mode 100644 index 0000000..44e831b --- /dev/null +++ b/src/com/szpg/db/data/PgYwAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 爆管液位浓度报警状态数据表 + * + * @author admin + * + */ +public class PgYwAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = 3882791834818808488L; + + private Integer id; + private Boolean ywalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getYwalm() { + return ywalm; + } + + public void setYwalm(Boolean ywalm) { + this.ywalm = ywalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/plc/message/AppMessageConstants.java b/src/com/szpg/plc/message/AppMessageConstants.java index 1c84086..bedec39 100644 --- a/src/com/szpg/plc/message/AppMessageConstants.java +++ b/src/com/szpg/plc/message/AppMessageConstants.java @@ -16,4 +16,6 @@ public final static String CMD_TYPE_READYWSTATUS = "21"; //读取爆管液位报警状态命令 public final static String CMD_TYPE_READDSSTATUS = "22"; //读取对射报警状态命令 + public final static String CMD_TYPE_READFJSTAT = "23"; //读取风机运行状态命令 + public final static String CMD_TYPE_READFJRUNTIME = "24"; //读取风机运行时长命令 } diff --git a/src/com/szpg/plc/message/command/ReadMemoryCommand.java b/src/com/szpg/plc/message/command/ReadMemoryCommand.java index 3678a16..67c1a63 100644 --- a/src/com/szpg/plc/message/command/ReadMemoryCommand.java +++ b/src/com/szpg/plc/message/command/ReadMemoryCommand.java @@ -6,6 +6,8 @@ import com.szpg.plc.message.command.read.ReadCOStatusCommand; import com.szpg.plc.message.command.read.ReadCOValueCommand; import com.szpg.plc.message.command.read.ReadDSStatusCommand; +import com.szpg.plc.message.command.read.ReadFjRtCommand; +import com.szpg.plc.message.command.read.ReadFjStatCommand; import com.szpg.plc.message.command.read.ReadHSStatusCommand; import com.szpg.plc.message.command.read.ReadHSValueCommand; import com.szpg.plc.message.command.read.ReadO2StatusCommand; @@ -109,6 +111,11 @@ case AppMessageConstants.CMD_TYPE_READDSSTATUS: return new ReadDSStatusCommand(); + + case AppMessageConstants.CMD_TYPE_READFJSTAT: + return new ReadFjStatCommand(); + case AppMessageConstants.CMD_TYPE_READFJRUNTIME: + return new ReadFjRtCommand(); default: return null; diff --git a/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java b/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java new file mode 100644 index 0000000..88f7016 --- /dev/null +++ b/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java @@ -0,0 +1,29 @@ +package com.szpg.plc.message.command.read; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.message.response.read.ReadFjRtCommandResponse; + +public class ReadFjRtCommand extends ReadMemoryCommand { + + /** + * + */ + private static final long serialVersionUID = -8726665168808135207L; + + @Override + public Class getResponseClass() { + return ReadFjRtCommandResponse.class; + } + + @Override + public String toString() { + return "向终端[" + getDestinationId() + "]发送查询风机累计运行时长命令"; + } + + @Override + public String getCommandType() { + return AppMessageConstants.CMD_TYPE_READFJRUNTIME; + } + +} diff --git a/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java b/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java new file mode 100644 index 0000000..bb995b7 --- /dev/null +++ b/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java @@ -0,0 +1,29 @@ +package com.szpg.plc.message.command.read; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.message.response.read.ReadFjStatCommandResponse; + +public class ReadFjStatCommand extends ReadMemoryCommand { + + /** + * + */ + private static final long serialVersionUID = -4572411641346032487L; + + @Override + public Class getResponseClass() { + return ReadFjStatCommandResponse.class; + } + + @Override + public String toString() { + return "向终端[" + getDestinationId() + "]发送查询风机运行状态命令"; + } + + @Override + public String getCommandType() { + return AppMessageConstants.CMD_TYPE_READFJSTAT; + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java index e2b476b..df088df 100644 --- a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java @@ -3,9 +3,9 @@ import java.util.ArrayList; import java.util.List; -import com.szpg.db.dao.PgDSDao; +import com.szpg.db.dao.PgDsDao; import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgDSDaoImpl; +import com.szpg.db.dao.impl.PgDsDaoImpl; import com.szpg.db.dao.impl.PgDeviceDaoImpl; import com.szpg.plc.message.response.ReadMemoryCommandResponse; import com.szpg.util.TimeFormat; @@ -34,7 +34,7 @@ @Override public void afterAction() { // 1将对射报警数据存入数据库 - PgDSDao dsDao = new PgDSDaoImpl(); + PgDsDao dsDao = new PgDsDaoImpl(); PgDeviceDao deviceDao = new PgDeviceDaoImpl(); List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "DS"); diff --git a/src/com/szpg/plc/message/response/read/ReadFjRtCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadFjRtCommandResponse.java new file mode 100644 index 0000000..e1565f2 --- /dev/null +++ b/src/com/szpg/plc/message/response/read/ReadFjRtCommandResponse.java @@ -0,0 +1,59 @@ +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.impl.PgFjDaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.util.TimeFormat; + +public class ReadFjRtCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8310205838594006103L; + + private List fjscs; // 风机运行时长——秒数 + private List fjsch; // 风机运行时长——小时数 + + public ReadFjRtCommandResponse() { + fjscs = new ArrayList(); + fjsch = new ArrayList(); + } + + public List getFjscs() { + return fjscs; + } + + public void setFjscs(List fjscs) { + this.fjscs = fjscs; + } + + public List getFjsch() { + return fjsch; + } + + public void setFjsch(List fjsch) { + this.fjsch = fjsch; + } + + @Override + public void afterAction() { + // 1将风机累计运行时长数据存入数据库 + PgFjDao fjDao = new PgFjDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "FJ"); + + for (int i = 0; i < fjscs.size(); i++) { + if (i < ids.size()) { + fjDao.addRtRecord(fjscs.get(i), fjsch.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), ids.get(i)); + } + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java new file mode 100644 index 0000000..15bccaa --- /dev/null +++ b/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java @@ -0,0 +1,59 @@ +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgFjDaoImpl; +import com.szpg.db.data.PgFjStat; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; + +public class ReadFjStatCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6983756717484259517L; + + private List fjzt; + + public ReadFjStatCommandResponse() { + fjzt = new ArrayList(); + } + + public List getFjzt() { + return fjzt; + } + + public void setFjzt(List fjzt) { + this.fjzt = fjzt; + } + + @Override + public void afterAction() { + // 1将风机运行状态数据存入数据库 + PgFjDao fjDao = new PgFjDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "FJ"); + + for (int i = 0; i < fjzt.size(); i++) { + if (i < ids.size()) { + fjzt.get(i).setPgdeviceid(ids.get(i)); + fjzt.get(i).setTm(this.getTime().getTime()); + fjDao.addStatRecord(fjzt.get(i)); + + // 有报警状态 + if (fjzt.get(i).getFlt() == true) { + // TODO + // 1存入报警管理表 + + + } + } + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java index c2674f2..e0547af 100644 --- a/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java @@ -3,9 +3,9 @@ import java.util.ArrayList; import java.util.List; -import com.szpg.db.dao.PgYWDao; +import com.szpg.db.dao.PgYwDao; import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgYWDaoImpl; +import com.szpg.db.dao.impl.PgYwDaoImpl; import com.szpg.db.dao.impl.PgDeviceDaoImpl; import com.szpg.plc.message.response.ReadMemoryCommandResponse; import com.szpg.util.TimeFormat; @@ -34,7 +34,7 @@ @Override public void afterAction() { // 1将爆管液位浓度数据存入数据库 - PgYWDao ywDao = new PgYWDaoImpl(); + PgYwDao ywDao = new PgYwDaoImpl(); PgDeviceDao deviceDao = new PgDeviceDaoImpl(); List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "YW"); diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgFjDaoImpl.java b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java new file mode 100644 index 0000000..cbab4c5 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java @@ -0,0 +1,469 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; +import com.szpg.db.util.ConnectionManager; + +public class PgFjDaoImpl implements PgFjDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgFjRt findLatestRtByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, RUNSECOND, RUNHOUR FROM PG_FJ_RT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjRt rt = new PgFjRt(); + Object[] item = tempList.get(0); + + rt.setId(((Number) item[0]).intValue()); + rt.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + rt.setLogtime(cal.getTime()); + rt.setUptime(cal.getTime()); + + rt.setRunsecond(Integer.parseInt((String) item[3])); + rt.setRunhour(Integer.parseInt((String) item[4])); + + logger.debug("根据ID查询风机最新运行时长成功" + rt + "]"); + + return rt; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addRtRecord(PgFjRt fjrt) { + return addRtRecord(fjrt.getRunsecond(), fjrt.getRunhour(), fjrt.getTmStr(), fjrt.getPgdeviceid()); + } + + @Override + public int addRtRecord(int second, int hour, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_RT " + + "(RUNSECOND, RUNHOUR, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = second; + params[1] = hour; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行时长成功[tm=" + tm + ", second=" + second + ", hour=" + hour + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行时长失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllStat() { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findStatById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findLatestStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机最新运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addStatRecord(PgFjStat fjstat) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(AM, RUN, FLT, EN, NO, ROUT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, ?, ?, ?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[9]; + params[0] = fjstat.getAm(); + params[1] = fjstat.getRun(); + params[2] = fjstat.getFlt(); + params[3] = fjstat.getEn(); + params[4] = fjstat.getNo(); + params[5] = fjstat.getRout(); + params[6] = fjstat.getTmStr(); + params[7] = fjstat.getTmStr(); + params[8] = fjstat.getPgdeviceid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功" + fjstat); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(RUN, FLT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = run; + params[1] = flt; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功[tm=" + tm + ", run=" + run + ", flt=" + flt + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java b/src/com/szpg/db/dao/impl/PgYWDaoImpl.java deleted file mode 100644 index 613c4c0..0000000 --- a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgYWDao; -import com.szpg.db.data.PgYWAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgYWDaoImpl implements PgYWDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgYWAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(0); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); - - return ywalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgYWAlm ywalm) { - return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_YW_ALM " + - "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入爆管液位报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgYwDaoImpl.java b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java new file mode 100644 index 0000000..c68faa3 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgYwDao; +import com.szpg.db.data.PgYwAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgYwDaoImpl implements PgYwDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgYwAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(0); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); + + return ywalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgYwAlm ywalm) { + return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_YW_ALM " + + "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入爆管液位报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgDSAlm.java b/src/com/szpg/db/data/PgDSAlm.java deleted file mode 100644 index 86e28bb..0000000 --- a/src/com/szpg/db/data/PgDSAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 对射报警状态数据表 - * - * @author admin - * - */ -public class PgDSAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = -8336945265752238748L; - - private Integer id; - private Boolean dsalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getDsalm() { - return dsalm; - } - - public void setDsalm(Boolean dsalm) { - this.dsalm = dsalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgDsAlm.java b/src/com/szpg/db/data/PgDsAlm.java new file mode 100644 index 0000000..224d029 --- /dev/null +++ b/src/com/szpg/db/data/PgDsAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 对射报警状态数据表 + * + * @author admin + * + */ +public class PgDsAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -8336945265752238748L; + + private Integer id; + private Boolean dsalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getDsalm() { + return dsalm; + } + + public void setDsalm(Boolean dsalm) { + this.dsalm = dsalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjRt.java b/src/com/szpg/db/data/PgFjRt.java new file mode 100644 index 0000000..cfb502b --- /dev/null +++ b/src/com/szpg/db/data/PgFjRt.java @@ -0,0 +1,105 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.NumberFormat; +import com.szpg.util.TimeFormat; + +/** + * 风机累计运行时长数据表 + * + * @author admin + * + */ +public class PgFjRt implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3467596631537217402L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Integer runsecond; + private Integer runhour; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Integer getRunsecond() { + return runsecond; + } + + public void setRunsecond(Integer runsecond) { + this.runsecond = runsecond; + } + + public Integer getRunhour() { + return runhour; + } + + public void setRunhour(Integer runhour) { + this.runhour = runhour; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + public String getAccRunTime() { + return NumberFormat.format(runhour + runsecond / 3600, "0.00"); + } + + @Override + public String toString() { + return "PgFjRt[acc=" + getAccRunTime() + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjStat.java b/src/com/szpg/db/data/PgFjStat.java new file mode 100644 index 0000000..a9ade35 --- /dev/null +++ b/src/com/szpg/db/data/PgFjStat.java @@ -0,0 +1,136 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 风机运行状态数据表 + * + * @author admin + * + */ +public class PgFjStat implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3826912263791110981L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Boolean am; //就地/远控标志位 + private Boolean run; //运行状态标志位 + private Boolean flt; //故障报警 + private Boolean en; //手自动使能标志位 + private Boolean no; //禁止操作标志位 + private Boolean rout; //启停超时标志位 + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Boolean getAm() { + return am; + } + + public void setAm(Boolean am) { + this.am = am; + } + + public Boolean getRun() { + return run; + } + + public void setRun(Boolean run) { + this.run = run; + } + + public Boolean getFlt() { + return flt; + } + + public void setFlt(Boolean flt) { + this.flt = flt; + } + + public Boolean getEn() { + return en; + } + + public void setEn(Boolean en) { + this.en = en; + } + + public Boolean getNo() { + return no; + } + + public void setNo(Boolean no) { + this.no = no; + } + + public Boolean getRout() { + return rout; + } + + public void setRout(Boolean rout) { + this.rout = rout; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgFjStat[run=" + run + ", flt=" + flt + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgYWAlm.java b/src/com/szpg/db/data/PgYWAlm.java deleted file mode 100644 index 9d9572f..0000000 --- a/src/com/szpg/db/data/PgYWAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 爆管液位浓度报警状态数据表 - * - * @author admin - * - */ -public class PgYWAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = 3882791834818808488L; - - private Integer id; - private Boolean ywalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getYwalm() { - return ywalm; - } - - public void setYwalm(Boolean ywalm) { - this.ywalm = ywalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgYwAlm.java b/src/com/szpg/db/data/PgYwAlm.java new file mode 100644 index 0000000..44e831b --- /dev/null +++ b/src/com/szpg/db/data/PgYwAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 爆管液位浓度报警状态数据表 + * + * @author admin + * + */ +public class PgYwAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = 3882791834818808488L; + + private Integer id; + private Boolean ywalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getYwalm() { + return ywalm; + } + + public void setYwalm(Boolean ywalm) { + this.ywalm = ywalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/plc/message/AppMessageConstants.java b/src/com/szpg/plc/message/AppMessageConstants.java index 1c84086..bedec39 100644 --- a/src/com/szpg/plc/message/AppMessageConstants.java +++ b/src/com/szpg/plc/message/AppMessageConstants.java @@ -16,4 +16,6 @@ public final static String CMD_TYPE_READYWSTATUS = "21"; //读取爆管液位报警状态命令 public final static String CMD_TYPE_READDSSTATUS = "22"; //读取对射报警状态命令 + public final static String CMD_TYPE_READFJSTAT = "23"; //读取风机运行状态命令 + public final static String CMD_TYPE_READFJRUNTIME = "24"; //读取风机运行时长命令 } diff --git a/src/com/szpg/plc/message/command/ReadMemoryCommand.java b/src/com/szpg/plc/message/command/ReadMemoryCommand.java index 3678a16..67c1a63 100644 --- a/src/com/szpg/plc/message/command/ReadMemoryCommand.java +++ b/src/com/szpg/plc/message/command/ReadMemoryCommand.java @@ -6,6 +6,8 @@ import com.szpg.plc.message.command.read.ReadCOStatusCommand; import com.szpg.plc.message.command.read.ReadCOValueCommand; import com.szpg.plc.message.command.read.ReadDSStatusCommand; +import com.szpg.plc.message.command.read.ReadFjRtCommand; +import com.szpg.plc.message.command.read.ReadFjStatCommand; import com.szpg.plc.message.command.read.ReadHSStatusCommand; import com.szpg.plc.message.command.read.ReadHSValueCommand; import com.szpg.plc.message.command.read.ReadO2StatusCommand; @@ -109,6 +111,11 @@ case AppMessageConstants.CMD_TYPE_READDSSTATUS: return new ReadDSStatusCommand(); + + case AppMessageConstants.CMD_TYPE_READFJSTAT: + return new ReadFjStatCommand(); + case AppMessageConstants.CMD_TYPE_READFJRUNTIME: + return new ReadFjRtCommand(); default: return null; diff --git a/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java b/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java new file mode 100644 index 0000000..88f7016 --- /dev/null +++ b/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java @@ -0,0 +1,29 @@ +package com.szpg.plc.message.command.read; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.message.response.read.ReadFjRtCommandResponse; + +public class ReadFjRtCommand extends ReadMemoryCommand { + + /** + * + */ + private static final long serialVersionUID = -8726665168808135207L; + + @Override + public Class getResponseClass() { + return ReadFjRtCommandResponse.class; + } + + @Override + public String toString() { + return "向终端[" + getDestinationId() + "]发送查询风机累计运行时长命令"; + } + + @Override + public String getCommandType() { + return AppMessageConstants.CMD_TYPE_READFJRUNTIME; + } + +} diff --git a/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java b/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java new file mode 100644 index 0000000..bb995b7 --- /dev/null +++ b/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java @@ -0,0 +1,29 @@ +package com.szpg.plc.message.command.read; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.message.response.read.ReadFjStatCommandResponse; + +public class ReadFjStatCommand extends ReadMemoryCommand { + + /** + * + */ + private static final long serialVersionUID = -4572411641346032487L; + + @Override + public Class getResponseClass() { + return ReadFjStatCommandResponse.class; + } + + @Override + public String toString() { + return "向终端[" + getDestinationId() + "]发送查询风机运行状态命令"; + } + + @Override + public String getCommandType() { + return AppMessageConstants.CMD_TYPE_READFJSTAT; + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java index e2b476b..df088df 100644 --- a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java @@ -3,9 +3,9 @@ import java.util.ArrayList; import java.util.List; -import com.szpg.db.dao.PgDSDao; +import com.szpg.db.dao.PgDsDao; import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgDSDaoImpl; +import com.szpg.db.dao.impl.PgDsDaoImpl; import com.szpg.db.dao.impl.PgDeviceDaoImpl; import com.szpg.plc.message.response.ReadMemoryCommandResponse; import com.szpg.util.TimeFormat; @@ -34,7 +34,7 @@ @Override public void afterAction() { // 1将对射报警数据存入数据库 - PgDSDao dsDao = new PgDSDaoImpl(); + PgDsDao dsDao = new PgDsDaoImpl(); PgDeviceDao deviceDao = new PgDeviceDaoImpl(); List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "DS"); diff --git a/src/com/szpg/plc/message/response/read/ReadFjRtCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadFjRtCommandResponse.java new file mode 100644 index 0000000..e1565f2 --- /dev/null +++ b/src/com/szpg/plc/message/response/read/ReadFjRtCommandResponse.java @@ -0,0 +1,59 @@ +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.impl.PgFjDaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.util.TimeFormat; + +public class ReadFjRtCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8310205838594006103L; + + private List fjscs; // 风机运行时长——秒数 + private List fjsch; // 风机运行时长——小时数 + + public ReadFjRtCommandResponse() { + fjscs = new ArrayList(); + fjsch = new ArrayList(); + } + + public List getFjscs() { + return fjscs; + } + + public void setFjscs(List fjscs) { + this.fjscs = fjscs; + } + + public List getFjsch() { + return fjsch; + } + + public void setFjsch(List fjsch) { + this.fjsch = fjsch; + } + + @Override + public void afterAction() { + // 1将风机累计运行时长数据存入数据库 + PgFjDao fjDao = new PgFjDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "FJ"); + + for (int i = 0; i < fjscs.size(); i++) { + if (i < ids.size()) { + fjDao.addRtRecord(fjscs.get(i), fjsch.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), ids.get(i)); + } + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java new file mode 100644 index 0000000..15bccaa --- /dev/null +++ b/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java @@ -0,0 +1,59 @@ +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgFjDaoImpl; +import com.szpg.db.data.PgFjStat; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; + +public class ReadFjStatCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6983756717484259517L; + + private List fjzt; + + public ReadFjStatCommandResponse() { + fjzt = new ArrayList(); + } + + public List getFjzt() { + return fjzt; + } + + public void setFjzt(List fjzt) { + this.fjzt = fjzt; + } + + @Override + public void afterAction() { + // 1将风机运行状态数据存入数据库 + PgFjDao fjDao = new PgFjDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "FJ"); + + for (int i = 0; i < fjzt.size(); i++) { + if (i < ids.size()) { + fjzt.get(i).setPgdeviceid(ids.get(i)); + fjzt.get(i).setTm(this.getTime().getTime()); + fjDao.addStatRecord(fjzt.get(i)); + + // 有报警状态 + if (fjzt.get(i).getFlt() == true) { + // TODO + // 1存入报警管理表 + + + } + } + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java index c2674f2..e0547af 100644 --- a/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java @@ -3,9 +3,9 @@ import java.util.ArrayList; import java.util.List; -import com.szpg.db.dao.PgYWDao; +import com.szpg.db.dao.PgYwDao; import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgYWDaoImpl; +import com.szpg.db.dao.impl.PgYwDaoImpl; import com.szpg.db.dao.impl.PgDeviceDaoImpl; import com.szpg.plc.message.response.ReadMemoryCommandResponse; import com.szpg.util.TimeFormat; @@ -34,7 +34,7 @@ @Override public void afterAction() { // 1将爆管液位浓度数据存入数据库 - PgYWDao ywDao = new PgYWDaoImpl(); + PgYwDao ywDao = new PgYwDaoImpl(); PgDeviceDao deviceDao = new PgDeviceDaoImpl(); List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "YW"); diff --git a/src/com/szpg/plc/protocol/fins/FINSDTProtocolImp.java b/src/com/szpg/plc/protocol/fins/FINSDTProtocolImp.java index a65488e..3b3f26b 100644 --- a/src/com/szpg/plc/protocol/fins/FINSDTProtocolImp.java +++ b/src/com/szpg/plc/protocol/fins/FINSDTProtocolImp.java @@ -9,6 +9,7 @@ import com.szpg.db.dao.PgAcuRdcmdDao; import com.szpg.db.dao.impl.PgAcuRdcmdDaoImpl; import com.szpg.db.data.PgAcuRdcmd; +import com.szpg.db.data.PgFjStat; import com.szpg.plc.message.AppMessage; import com.szpg.plc.message.AppMessageConstants; import com.szpg.plc.message.UnKnownMessage; @@ -20,6 +21,8 @@ import com.szpg.plc.message.response.read.ReadCOStatusCommandResponse; import com.szpg.plc.message.response.read.ReadCOValueCommandResponse; import com.szpg.plc.message.response.read.ReadDSStatusCommandResponse; +import com.szpg.plc.message.response.read.ReadFjRtCommandResponse; +import com.szpg.plc.message.response.read.ReadFjStatCommandResponse; import com.szpg.plc.message.response.read.ReadHSStatusCommandResponse; import com.szpg.plc.message.response.read.ReadHSValueCommandResponse; import com.szpg.plc.message.response.read.ReadO2StatusCommandResponse; @@ -173,6 +176,13 @@ case AppMessageConstants.CMD_TYPE_READDSSTATUS: received = bytesToReadDSStatusCommandResponse(finsFrame, readCmd); break; + + case AppMessageConstants.CMD_TYPE_READFJSTAT: + received = bytesToReadFjStatCommandResponse(finsFrame, readCmd); + break; + case AppMessageConstants.CMD_TYPE_READFJRUNTIME: + received = bytesToReadFjRtCommandResponse(finsFrame, readCmd); + break; } // 4将已响应的命令删除 @@ -629,6 +639,94 @@ return rdscr; } + + + /** + * 将查询风机运行状态响应消息字节数组转换为消息对象 + * + * @param byteMessage + * @return + */ + private AppMessage bytesToReadFjStatCommandResponse(FINSByteFrame finsFrame, PgAcuRdcmd cmd) { + ReadFjStatCommandResponse rfscr = new ReadFjStatCommandResponse(); + + byte[] body = finsFrame.TEXT_DATA_BODY; + rfscr.setMessageProducerId(FINSByteFrameTool.getControlDest(finsFrame)); + if (body[2] == 0x00 && body[3] == 0x00) { + // 正常返回 + byte[] data = FINSByteFrameTool.getDataWithoutEndCode(finsFrame); //获取返回的内存 + int fjct = cmd.getCount_sensor(); //风机的数量 + int bitct = cmd.getCount_bit(); //读取的位的数量,用于计算字节数 + int bytect = (bitct % 16 == 0 ? bitct / 16 : bitct / 16 + 1) * 2; + String dataStr = ""; + for (int i = 0; i < bytect - 1; i = i + 2) { + dataStr = ByteUtil.binToBinString(new byte[] { data[i], data[i + 1] }) + dataStr; //D15-D0顺序 + } + + for (int i = 0; i < fjct; i++) { + char amBit = dataStr.charAt(dataStr.length() - i * 8 - 1); + char runBit = dataStr.charAt(dataStr.length() - i * 8 - 2); + char fltBit = dataStr.charAt(dataStr.length() - i * 8 - 3); + char enBit = dataStr.charAt(dataStr.length() - i * 8 - 4); + char noBit = dataStr.charAt(dataStr.length() - i * 8 - 5); + char routBit = dataStr.charAt(dataStr.length() - i * 8 - 8); + + PgFjStat fjzt = new PgFjStat(); + fjzt.setAm(amBit == '1' ? true : false); + fjzt.setRun(runBit == '1' ? true : false); + fjzt.setFlt(fltBit == '1' ? true : false); + fjzt.setEn(enBit == '1' ? true : false); + fjzt.setNo(noBit == '1' ? true : false); + fjzt.setRout(routBit == '1' ? true : false); + + rfscr.getFjzt().add(fjzt); + } + } + + return rfscr; + } + + + /** + * 将读取风机运行时长响应字节数组转换为消息对象 + * + * @param finsFrame + * @return + */ + private AppMessage bytesToReadFjRtCommandResponse(FINSByteFrame finsFrame, PgAcuRdcmd cmd) { + ReadFjRtCommandResponse rfrcr = new ReadFjRtCommandResponse(); + + byte[] body = finsFrame.TEXT_DATA_BODY; + rfrcr.setMessageProducerId(FINSByteFrameTool.getControlDest(finsFrame)); + if (body[2] == 0x00 && body[3] == 0x00) { + // 正常返回 + byte[] data = FINSByteFrameTool.getDataWithoutEndCode(finsFrame); //获取返回的内存 + int fjct = cmd.getCount_sensor(); //获取风机数量 + + int offset = cmd.getOffset(); //获取风机小时数变量的内存地址偏移量 + offset = offset + fjct * 2; + + // 解析并存储风机运行时长秒数 + for (int i = 0; i < fjct; i++) { + byte[] secondByte = new byte[] { data[i*2], data[i*2 + 1] }; + + int second = ByteUtil.binToInt(secondByte); // 运行时长的秒数 + + rfrcr.getFjscs().add(second); + } + + // 解析并存储风机运行时长小时数 + for (int i = 0; i < fjct; i++) { + byte[] hourByte = new byte[] { data[i*4 + 2 + offset], data[i*4 + 3 + offset], data[i*4 + offset], data[i*4 + 1 + offset] }; + + int hourValue = ByteUtil.binToInt(hourByte); //运行时长的小时数 + + rfrcr.getFjsch().add(hourValue); + } + } + + return rfrcr; + } /** * 将消息对象解析为字节数组 @@ -644,20 +742,6 @@ frame = LinkCommandToBytes((LinkCommand) message); } -// // 读取甲烷参数内存命令 -// if (message instanceof ReadCH4ValueCommand) { -// frame = ReadCH4ValueCommandToBytes((ReadCH4ValueCommand) message); -// } else if (message instanceof ReadCH4StatusCommand) { -// frame = ReadCH4StatusCommandToBytes((ReadCH4StatusCommand) message); -// } -// -// // 读取温湿度命令 -// else if (message instanceof ReadWSValueCommand) { -// frame = ReadWSValueCommandToBytes((ReadWSValueCommand) message); -// } else if (message instanceof ReadWSStatusCommand) { -// frame = ReadWSStatusCommandToBytes((ReadWSStatusCommand) message); -// } - // 读内存命令 if (message instanceof ReadMemoryCommand) { frame = readMemoryCommandToBytes((ReadMemoryCommand) message); diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgFjDaoImpl.java b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java new file mode 100644 index 0000000..cbab4c5 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java @@ -0,0 +1,469 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; +import com.szpg.db.util.ConnectionManager; + +public class PgFjDaoImpl implements PgFjDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgFjRt findLatestRtByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, RUNSECOND, RUNHOUR FROM PG_FJ_RT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjRt rt = new PgFjRt(); + Object[] item = tempList.get(0); + + rt.setId(((Number) item[0]).intValue()); + rt.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + rt.setLogtime(cal.getTime()); + rt.setUptime(cal.getTime()); + + rt.setRunsecond(Integer.parseInt((String) item[3])); + rt.setRunhour(Integer.parseInt((String) item[4])); + + logger.debug("根据ID查询风机最新运行时长成功" + rt + "]"); + + return rt; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addRtRecord(PgFjRt fjrt) { + return addRtRecord(fjrt.getRunsecond(), fjrt.getRunhour(), fjrt.getTmStr(), fjrt.getPgdeviceid()); + } + + @Override + public int addRtRecord(int second, int hour, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_RT " + + "(RUNSECOND, RUNHOUR, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = second; + params[1] = hour; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行时长成功[tm=" + tm + ", second=" + second + ", hour=" + hour + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行时长失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllStat() { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findStatById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findLatestStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机最新运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addStatRecord(PgFjStat fjstat) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(AM, RUN, FLT, EN, NO, ROUT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, ?, ?, ?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[9]; + params[0] = fjstat.getAm(); + params[1] = fjstat.getRun(); + params[2] = fjstat.getFlt(); + params[3] = fjstat.getEn(); + params[4] = fjstat.getNo(); + params[5] = fjstat.getRout(); + params[6] = fjstat.getTmStr(); + params[7] = fjstat.getTmStr(); + params[8] = fjstat.getPgdeviceid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功" + fjstat); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(RUN, FLT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = run; + params[1] = flt; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功[tm=" + tm + ", run=" + run + ", flt=" + flt + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java b/src/com/szpg/db/dao/impl/PgYWDaoImpl.java deleted file mode 100644 index 613c4c0..0000000 --- a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgYWDao; -import com.szpg.db.data.PgYWAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgYWDaoImpl implements PgYWDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgYWAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(0); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); - - return ywalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgYWAlm ywalm) { - return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_YW_ALM " + - "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入爆管液位报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgYwDaoImpl.java b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java new file mode 100644 index 0000000..c68faa3 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgYwDao; +import com.szpg.db.data.PgYwAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgYwDaoImpl implements PgYwDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgYwAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(0); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); + + return ywalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgYwAlm ywalm) { + return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_YW_ALM " + + "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入爆管液位报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgDSAlm.java b/src/com/szpg/db/data/PgDSAlm.java deleted file mode 100644 index 86e28bb..0000000 --- a/src/com/szpg/db/data/PgDSAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 对射报警状态数据表 - * - * @author admin - * - */ -public class PgDSAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = -8336945265752238748L; - - private Integer id; - private Boolean dsalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getDsalm() { - return dsalm; - } - - public void setDsalm(Boolean dsalm) { - this.dsalm = dsalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgDsAlm.java b/src/com/szpg/db/data/PgDsAlm.java new file mode 100644 index 0000000..224d029 --- /dev/null +++ b/src/com/szpg/db/data/PgDsAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 对射报警状态数据表 + * + * @author admin + * + */ +public class PgDsAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -8336945265752238748L; + + private Integer id; + private Boolean dsalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getDsalm() { + return dsalm; + } + + public void setDsalm(Boolean dsalm) { + this.dsalm = dsalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjRt.java b/src/com/szpg/db/data/PgFjRt.java new file mode 100644 index 0000000..cfb502b --- /dev/null +++ b/src/com/szpg/db/data/PgFjRt.java @@ -0,0 +1,105 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.NumberFormat; +import com.szpg.util.TimeFormat; + +/** + * 风机累计运行时长数据表 + * + * @author admin + * + */ +public class PgFjRt implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3467596631537217402L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Integer runsecond; + private Integer runhour; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Integer getRunsecond() { + return runsecond; + } + + public void setRunsecond(Integer runsecond) { + this.runsecond = runsecond; + } + + public Integer getRunhour() { + return runhour; + } + + public void setRunhour(Integer runhour) { + this.runhour = runhour; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + public String getAccRunTime() { + return NumberFormat.format(runhour + runsecond / 3600, "0.00"); + } + + @Override + public String toString() { + return "PgFjRt[acc=" + getAccRunTime() + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjStat.java b/src/com/szpg/db/data/PgFjStat.java new file mode 100644 index 0000000..a9ade35 --- /dev/null +++ b/src/com/szpg/db/data/PgFjStat.java @@ -0,0 +1,136 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 风机运行状态数据表 + * + * @author admin + * + */ +public class PgFjStat implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3826912263791110981L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Boolean am; //就地/远控标志位 + private Boolean run; //运行状态标志位 + private Boolean flt; //故障报警 + private Boolean en; //手自动使能标志位 + private Boolean no; //禁止操作标志位 + private Boolean rout; //启停超时标志位 + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Boolean getAm() { + return am; + } + + public void setAm(Boolean am) { + this.am = am; + } + + public Boolean getRun() { + return run; + } + + public void setRun(Boolean run) { + this.run = run; + } + + public Boolean getFlt() { + return flt; + } + + public void setFlt(Boolean flt) { + this.flt = flt; + } + + public Boolean getEn() { + return en; + } + + public void setEn(Boolean en) { + this.en = en; + } + + public Boolean getNo() { + return no; + } + + public void setNo(Boolean no) { + this.no = no; + } + + public Boolean getRout() { + return rout; + } + + public void setRout(Boolean rout) { + this.rout = rout; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgFjStat[run=" + run + ", flt=" + flt + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgYWAlm.java b/src/com/szpg/db/data/PgYWAlm.java deleted file mode 100644 index 9d9572f..0000000 --- a/src/com/szpg/db/data/PgYWAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 爆管液位浓度报警状态数据表 - * - * @author admin - * - */ -public class PgYWAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = 3882791834818808488L; - - private Integer id; - private Boolean ywalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getYwalm() { - return ywalm; - } - - public void setYwalm(Boolean ywalm) { - this.ywalm = ywalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgYwAlm.java b/src/com/szpg/db/data/PgYwAlm.java new file mode 100644 index 0000000..44e831b --- /dev/null +++ b/src/com/szpg/db/data/PgYwAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 爆管液位浓度报警状态数据表 + * + * @author admin + * + */ +public class PgYwAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = 3882791834818808488L; + + private Integer id; + private Boolean ywalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getYwalm() { + return ywalm; + } + + public void setYwalm(Boolean ywalm) { + this.ywalm = ywalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/plc/message/AppMessageConstants.java b/src/com/szpg/plc/message/AppMessageConstants.java index 1c84086..bedec39 100644 --- a/src/com/szpg/plc/message/AppMessageConstants.java +++ b/src/com/szpg/plc/message/AppMessageConstants.java @@ -16,4 +16,6 @@ public final static String CMD_TYPE_READYWSTATUS = "21"; //读取爆管液位报警状态命令 public final static String CMD_TYPE_READDSSTATUS = "22"; //读取对射报警状态命令 + public final static String CMD_TYPE_READFJSTAT = "23"; //读取风机运行状态命令 + public final static String CMD_TYPE_READFJRUNTIME = "24"; //读取风机运行时长命令 } diff --git a/src/com/szpg/plc/message/command/ReadMemoryCommand.java b/src/com/szpg/plc/message/command/ReadMemoryCommand.java index 3678a16..67c1a63 100644 --- a/src/com/szpg/plc/message/command/ReadMemoryCommand.java +++ b/src/com/szpg/plc/message/command/ReadMemoryCommand.java @@ -6,6 +6,8 @@ import com.szpg.plc.message.command.read.ReadCOStatusCommand; import com.szpg.plc.message.command.read.ReadCOValueCommand; import com.szpg.plc.message.command.read.ReadDSStatusCommand; +import com.szpg.plc.message.command.read.ReadFjRtCommand; +import com.szpg.plc.message.command.read.ReadFjStatCommand; import com.szpg.plc.message.command.read.ReadHSStatusCommand; import com.szpg.plc.message.command.read.ReadHSValueCommand; import com.szpg.plc.message.command.read.ReadO2StatusCommand; @@ -109,6 +111,11 @@ case AppMessageConstants.CMD_TYPE_READDSSTATUS: return new ReadDSStatusCommand(); + + case AppMessageConstants.CMD_TYPE_READFJSTAT: + return new ReadFjStatCommand(); + case AppMessageConstants.CMD_TYPE_READFJRUNTIME: + return new ReadFjRtCommand(); default: return null; diff --git a/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java b/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java new file mode 100644 index 0000000..88f7016 --- /dev/null +++ b/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java @@ -0,0 +1,29 @@ +package com.szpg.plc.message.command.read; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.message.response.read.ReadFjRtCommandResponse; + +public class ReadFjRtCommand extends ReadMemoryCommand { + + /** + * + */ + private static final long serialVersionUID = -8726665168808135207L; + + @Override + public Class getResponseClass() { + return ReadFjRtCommandResponse.class; + } + + @Override + public String toString() { + return "向终端[" + getDestinationId() + "]发送查询风机累计运行时长命令"; + } + + @Override + public String getCommandType() { + return AppMessageConstants.CMD_TYPE_READFJRUNTIME; + } + +} diff --git a/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java b/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java new file mode 100644 index 0000000..bb995b7 --- /dev/null +++ b/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java @@ -0,0 +1,29 @@ +package com.szpg.plc.message.command.read; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.message.response.read.ReadFjStatCommandResponse; + +public class ReadFjStatCommand extends ReadMemoryCommand { + + /** + * + */ + private static final long serialVersionUID = -4572411641346032487L; + + @Override + public Class getResponseClass() { + return ReadFjStatCommandResponse.class; + } + + @Override + public String toString() { + return "向终端[" + getDestinationId() + "]发送查询风机运行状态命令"; + } + + @Override + public String getCommandType() { + return AppMessageConstants.CMD_TYPE_READFJSTAT; + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java index e2b476b..df088df 100644 --- a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java @@ -3,9 +3,9 @@ import java.util.ArrayList; import java.util.List; -import com.szpg.db.dao.PgDSDao; +import com.szpg.db.dao.PgDsDao; import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgDSDaoImpl; +import com.szpg.db.dao.impl.PgDsDaoImpl; import com.szpg.db.dao.impl.PgDeviceDaoImpl; import com.szpg.plc.message.response.ReadMemoryCommandResponse; import com.szpg.util.TimeFormat; @@ -34,7 +34,7 @@ @Override public void afterAction() { // 1将对射报警数据存入数据库 - PgDSDao dsDao = new PgDSDaoImpl(); + PgDsDao dsDao = new PgDsDaoImpl(); PgDeviceDao deviceDao = new PgDeviceDaoImpl(); List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "DS"); diff --git a/src/com/szpg/plc/message/response/read/ReadFjRtCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadFjRtCommandResponse.java new file mode 100644 index 0000000..e1565f2 --- /dev/null +++ b/src/com/szpg/plc/message/response/read/ReadFjRtCommandResponse.java @@ -0,0 +1,59 @@ +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.impl.PgFjDaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.util.TimeFormat; + +public class ReadFjRtCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8310205838594006103L; + + private List fjscs; // 风机运行时长——秒数 + private List fjsch; // 风机运行时长——小时数 + + public ReadFjRtCommandResponse() { + fjscs = new ArrayList(); + fjsch = new ArrayList(); + } + + public List getFjscs() { + return fjscs; + } + + public void setFjscs(List fjscs) { + this.fjscs = fjscs; + } + + public List getFjsch() { + return fjsch; + } + + public void setFjsch(List fjsch) { + this.fjsch = fjsch; + } + + @Override + public void afterAction() { + // 1将风机累计运行时长数据存入数据库 + PgFjDao fjDao = new PgFjDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "FJ"); + + for (int i = 0; i < fjscs.size(); i++) { + if (i < ids.size()) { + fjDao.addRtRecord(fjscs.get(i), fjsch.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), ids.get(i)); + } + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java new file mode 100644 index 0000000..15bccaa --- /dev/null +++ b/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java @@ -0,0 +1,59 @@ +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgFjDaoImpl; +import com.szpg.db.data.PgFjStat; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; + +public class ReadFjStatCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6983756717484259517L; + + private List fjzt; + + public ReadFjStatCommandResponse() { + fjzt = new ArrayList(); + } + + public List getFjzt() { + return fjzt; + } + + public void setFjzt(List fjzt) { + this.fjzt = fjzt; + } + + @Override + public void afterAction() { + // 1将风机运行状态数据存入数据库 + PgFjDao fjDao = new PgFjDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "FJ"); + + for (int i = 0; i < fjzt.size(); i++) { + if (i < ids.size()) { + fjzt.get(i).setPgdeviceid(ids.get(i)); + fjzt.get(i).setTm(this.getTime().getTime()); + fjDao.addStatRecord(fjzt.get(i)); + + // 有报警状态 + if (fjzt.get(i).getFlt() == true) { + // TODO + // 1存入报警管理表 + + + } + } + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java index c2674f2..e0547af 100644 --- a/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java @@ -3,9 +3,9 @@ import java.util.ArrayList; import java.util.List; -import com.szpg.db.dao.PgYWDao; +import com.szpg.db.dao.PgYwDao; import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgYWDaoImpl; +import com.szpg.db.dao.impl.PgYwDaoImpl; import com.szpg.db.dao.impl.PgDeviceDaoImpl; import com.szpg.plc.message.response.ReadMemoryCommandResponse; import com.szpg.util.TimeFormat; @@ -34,7 +34,7 @@ @Override public void afterAction() { // 1将爆管液位浓度数据存入数据库 - PgYWDao ywDao = new PgYWDaoImpl(); + PgYwDao ywDao = new PgYwDaoImpl(); PgDeviceDao deviceDao = new PgDeviceDaoImpl(); List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "YW"); diff --git a/src/com/szpg/plc/protocol/fins/FINSDTProtocolImp.java b/src/com/szpg/plc/protocol/fins/FINSDTProtocolImp.java index a65488e..3b3f26b 100644 --- a/src/com/szpg/plc/protocol/fins/FINSDTProtocolImp.java +++ b/src/com/szpg/plc/protocol/fins/FINSDTProtocolImp.java @@ -9,6 +9,7 @@ import com.szpg.db.dao.PgAcuRdcmdDao; import com.szpg.db.dao.impl.PgAcuRdcmdDaoImpl; import com.szpg.db.data.PgAcuRdcmd; +import com.szpg.db.data.PgFjStat; import com.szpg.plc.message.AppMessage; import com.szpg.plc.message.AppMessageConstants; import com.szpg.plc.message.UnKnownMessage; @@ -20,6 +21,8 @@ import com.szpg.plc.message.response.read.ReadCOStatusCommandResponse; import com.szpg.plc.message.response.read.ReadCOValueCommandResponse; import com.szpg.plc.message.response.read.ReadDSStatusCommandResponse; +import com.szpg.plc.message.response.read.ReadFjRtCommandResponse; +import com.szpg.plc.message.response.read.ReadFjStatCommandResponse; import com.szpg.plc.message.response.read.ReadHSStatusCommandResponse; import com.szpg.plc.message.response.read.ReadHSValueCommandResponse; import com.szpg.plc.message.response.read.ReadO2StatusCommandResponse; @@ -173,6 +176,13 @@ case AppMessageConstants.CMD_TYPE_READDSSTATUS: received = bytesToReadDSStatusCommandResponse(finsFrame, readCmd); break; + + case AppMessageConstants.CMD_TYPE_READFJSTAT: + received = bytesToReadFjStatCommandResponse(finsFrame, readCmd); + break; + case AppMessageConstants.CMD_TYPE_READFJRUNTIME: + received = bytesToReadFjRtCommandResponse(finsFrame, readCmd); + break; } // 4将已响应的命令删除 @@ -629,6 +639,94 @@ return rdscr; } + + + /** + * 将查询风机运行状态响应消息字节数组转换为消息对象 + * + * @param byteMessage + * @return + */ + private AppMessage bytesToReadFjStatCommandResponse(FINSByteFrame finsFrame, PgAcuRdcmd cmd) { + ReadFjStatCommandResponse rfscr = new ReadFjStatCommandResponse(); + + byte[] body = finsFrame.TEXT_DATA_BODY; + rfscr.setMessageProducerId(FINSByteFrameTool.getControlDest(finsFrame)); + if (body[2] == 0x00 && body[3] == 0x00) { + // 正常返回 + byte[] data = FINSByteFrameTool.getDataWithoutEndCode(finsFrame); //获取返回的内存 + int fjct = cmd.getCount_sensor(); //风机的数量 + int bitct = cmd.getCount_bit(); //读取的位的数量,用于计算字节数 + int bytect = (bitct % 16 == 0 ? bitct / 16 : bitct / 16 + 1) * 2; + String dataStr = ""; + for (int i = 0; i < bytect - 1; i = i + 2) { + dataStr = ByteUtil.binToBinString(new byte[] { data[i], data[i + 1] }) + dataStr; //D15-D0顺序 + } + + for (int i = 0; i < fjct; i++) { + char amBit = dataStr.charAt(dataStr.length() - i * 8 - 1); + char runBit = dataStr.charAt(dataStr.length() - i * 8 - 2); + char fltBit = dataStr.charAt(dataStr.length() - i * 8 - 3); + char enBit = dataStr.charAt(dataStr.length() - i * 8 - 4); + char noBit = dataStr.charAt(dataStr.length() - i * 8 - 5); + char routBit = dataStr.charAt(dataStr.length() - i * 8 - 8); + + PgFjStat fjzt = new PgFjStat(); + fjzt.setAm(amBit == '1' ? true : false); + fjzt.setRun(runBit == '1' ? true : false); + fjzt.setFlt(fltBit == '1' ? true : false); + fjzt.setEn(enBit == '1' ? true : false); + fjzt.setNo(noBit == '1' ? true : false); + fjzt.setRout(routBit == '1' ? true : false); + + rfscr.getFjzt().add(fjzt); + } + } + + return rfscr; + } + + + /** + * 将读取风机运行时长响应字节数组转换为消息对象 + * + * @param finsFrame + * @return + */ + private AppMessage bytesToReadFjRtCommandResponse(FINSByteFrame finsFrame, PgAcuRdcmd cmd) { + ReadFjRtCommandResponse rfrcr = new ReadFjRtCommandResponse(); + + byte[] body = finsFrame.TEXT_DATA_BODY; + rfrcr.setMessageProducerId(FINSByteFrameTool.getControlDest(finsFrame)); + if (body[2] == 0x00 && body[3] == 0x00) { + // 正常返回 + byte[] data = FINSByteFrameTool.getDataWithoutEndCode(finsFrame); //获取返回的内存 + int fjct = cmd.getCount_sensor(); //获取风机数量 + + int offset = cmd.getOffset(); //获取风机小时数变量的内存地址偏移量 + offset = offset + fjct * 2; + + // 解析并存储风机运行时长秒数 + for (int i = 0; i < fjct; i++) { + byte[] secondByte = new byte[] { data[i*2], data[i*2 + 1] }; + + int second = ByteUtil.binToInt(secondByte); // 运行时长的秒数 + + rfrcr.getFjscs().add(second); + } + + // 解析并存储风机运行时长小时数 + for (int i = 0; i < fjct; i++) { + byte[] hourByte = new byte[] { data[i*4 + 2 + offset], data[i*4 + 3 + offset], data[i*4 + offset], data[i*4 + 1 + offset] }; + + int hourValue = ByteUtil.binToInt(hourByte); //运行时长的小时数 + + rfrcr.getFjsch().add(hourValue); + } + } + + return rfrcr; + } /** * 将消息对象解析为字节数组 @@ -644,20 +742,6 @@ frame = LinkCommandToBytes((LinkCommand) message); } -// // 读取甲烷参数内存命令 -// if (message instanceof ReadCH4ValueCommand) { -// frame = ReadCH4ValueCommandToBytes((ReadCH4ValueCommand) message); -// } else if (message instanceof ReadCH4StatusCommand) { -// frame = ReadCH4StatusCommandToBytes((ReadCH4StatusCommand) message); -// } -// -// // 读取温湿度命令 -// else if (message instanceof ReadWSValueCommand) { -// frame = ReadWSValueCommandToBytes((ReadWSValueCommand) message); -// } else if (message instanceof ReadWSStatusCommand) { -// frame = ReadWSStatusCommandToBytes((ReadWSStatusCommand) message); -// } - // 读内存命令 if (message instanceof ReadMemoryCommand) { frame = readMemoryCommandToBytes((ReadMemoryCommand) message); diff --git a/src/com/szpg/task/ReadFjRtTask.java b/src/com/szpg/task/ReadFjRtTask.java new file mode 100644 index 0000000..afa5bce --- /dev/null +++ b/src/com/szpg/task/ReadFjRtTask.java @@ -0,0 +1,48 @@ +package com.szpg.task; + +import com.szpg.db.dao.impl.PgAcuRdcmdDaoImpl; +import com.szpg.db.data.PgAcuRdcmd; +import com.szpg.plc.message.AppCommand; +import com.szpg.plc.message.command.read.ReadFjRtCommand; +import com.szpg.plc.protocol.DTProtocolInterface; +import com.szpg.plc.protocol.ProtocolFactory; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; + +public class ReadFjRtTask implements Runnable { + + private ACUClient client; + private AppCommand appCommand; + + public ReadFjRtTask(ACUClient client, AppCommand command) { + this.client = client; + this.appCommand = command; + } + + @Override + public void run() { + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + byte[] content = finspi.messageToBytes(appCommand); + + // 发送读取风机运行时长内存命令 + ACUClientUtil.getInstance().sendACUCommand(client, content); + + ReadFjRtCommand fjRtCmd = (ReadFjRtCommand) appCommand; + + // 发送完成之后将命令保存在数据库中 + PgAcuRdcmd cmd = new PgAcuRdcmd(); + cmd.setCmd_type(fjRtCmd.getCommandType()); + cmd.setDest(fjRtCmd.getDestinationId()); + cmd.setMem_area_cd(ByteUtil.binToHexString(new byte[] { fjRtCmd.getMemoryArea() })); + cmd.setStart_mem_word(fjRtCmd.getStartAddress().substring(0, 4)); + cmd.setStart_mem_bit(fjRtCmd.getStartAddress().substring(4)); + cmd.setCount_word(fjRtCmd.getCountWord()); + cmd.setCount_bit(fjRtCmd.getCountBit()); + cmd.setCount_sensor(fjRtCmd.getCountSensor()); + cmd.setOffset(fjRtCmd.getOffset()); + + new PgAcuRdcmdDaoImpl().addCmdRecord(cmd); + } + +} diff --git a/src/ACUBL.properties b/src/ACUBL.properties index 99e858d..0a3e805 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -18,7 +18,8 @@ YXL.ACU001.WS.COUNT = 6 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 YXL.ACU001.WD.START = 0400 -YXL.ACU001.SD.OFFSET = 52 +#(450-424)*2 = 52 +YXL.ACU001.SD.OFFSET = 52 #\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 YXL.ACU001.WS.WORDCOUNT = 74 #\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 @@ -85,3 +86,17 @@ #\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u4f4d\u6570 YXL.ACU001.DSALM.BITCOUNT = 45 +#\u98ce\u673a\u6570\u91cf +YXL.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJSTAT.START = 0016 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u4f4d\u6570 +YXL.ACU001.FJSTAT.BITCOUNT = 72 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +YXL.ACU001.FJRT.START = 0200 +#(230-209)*2=42 +YXL.ACU001.FJRT.OFFSET = 42 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +YXL.ACU001.FJRT.WORDCOUNT = 48 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 8d5ab08..12bc69c 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -17,6 +17,8 @@ import com.szpg.task.ReadCOStatusTask; import com.szpg.task.ReadCOValueTask; import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; import com.szpg.task.ReadHSStatusTask; import com.szpg.task.ReadHSValueTask; import com.szpg.task.ReadO2StatusTask; @@ -71,10 +73,16 @@ // dsc.testSendHSStatusCommand(client); // 测试发送查询爆管液位报警状态命令 - dsc.testSendYWStatusCommand(client); +// dsc.testSendYWStatusCommand(client); // 测试发送查询对射报警状态命令 // dsc.testSendDSStatusCommand(client); + + // 测试发送查询风机运行状态命令 + dsc.testSendFjStatCommand(client); + + // 测试发送风机运行时长命令 + dsc.testSendFjRtCommand(client); } /** @@ -419,4 +427,61 @@ // sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); // sche.shutdown(); //执行完任务之后关闭线程 } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + public void testSendFjStatCommand(ACUClient client) { + ReadMemoryCommand fjstat = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjstat.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjstat.setDestinationId(dest); + + fjstat.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + fjstat.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.START")), 2)) + "00"); + fjstat.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.WORDCOUNT"))); + fjstat.setCountBit(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJSTAT.BITCOUNT"))); + fjstat.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(client, fjstat), 15, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + public void testSendFjRtCommand(ACUClient client) { + ReadMemoryCommand fjrt = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJRUNTIME); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + fjrt.setMessageProducerId(sour); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + String dest = acu.getAcu_net() + acu.getAcu_node() + acu.getAcu_unit(); + fjrt.setDestinationId(dest); + + fjrt.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + fjrt.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.START")), 2)) + "00"); + fjrt.setCountWord(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.WORDCOUNT"))); + fjrt.setCountBit(0); //读取DM区时位无效 + fjrt.setCountSensor(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJ.COUNT"))); + fjrt.setOffset(Integer.parseInt(Configure.getProperty("acubl", acu.getAcu_code() + ".FJRT.OFFSET"))); + + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(client, fjrt), 20, 300, TimeUnit.SECONDS); +// sche.schedule(new ReadHSStatusTask(client, hsalm), 15, TimeUnit.SECONDS); +// sche.shutdown(); //执行完任务之后关闭线程 + } } diff --git a/src/com/szpg/db/dao/PgDSDao.java b/src/com/szpg/db/dao/PgDSDao.java deleted file mode 100644 index b731af9..0000000 --- a/src/com/szpg/db/dao/PgDSDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgDSAlm; - -/** - * 对射报警相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgDSDao { - - /******** 对射报警状态 ********/ - public List findAllSbjz(); - public PgDSAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgDSAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgDsDao.java b/src/com/szpg/db/dao/PgDsDao.java new file mode 100644 index 0000000..39cfe95 --- /dev/null +++ b/src/com/szpg/db/dao/PgDsDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgDsAlm; + +/** + * 对射报警相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgDsDao { + + /******** 对射报警状态 ********/ + public List findAllSbjz(); + public PgDsAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgDsAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgFjDao.java b/src/com/szpg/db/dao/PgFjDao.java new file mode 100644 index 0000000..8547b1c --- /dev/null +++ b/src/com/szpg/db/dao/PgFjDao.java @@ -0,0 +1,32 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; + +/** + * 风机运行相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgFjDao { + + /******** 风机累计运行时长 ********/ + public PgFjRt findLatestRtByDevice(Integer deviceid); + + public int addRtRecord(PgFjRt fjrt); + public int addRtRecord(int second, int hour, String tm, int deviceid); + + + /******** 风机运行状态 ********/ + public List findAllStat(); + public PgFjStat findStatById(Integer id); + + public List findStatByDevice(Integer deviceid); + public List findStatByDeviceAndTm(Integer deviceid, String start, String end); + public PgFjStat findLatestStatByDevice(Integer deviceid); + + public int addStatRecord(PgFjStat fjstat); + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgYWDao.java b/src/com/szpg/db/dao/PgYWDao.java deleted file mode 100644 index bb27bbf..0000000 --- a/src/com/szpg/db/dao/PgYWDao.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgYWAlm; - -/** - * 爆管液位相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgYWDao { - - /******** 爆管液位浓度报警状态 ********/ - public List findAllSbjz(); - public PgYWAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgYWAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} diff --git a/src/com/szpg/db/dao/PgYwDao.java b/src/com/szpg/db/dao/PgYwDao.java new file mode 100644 index 0000000..4578a64 --- /dev/null +++ b/src/com/szpg/db/dao/PgYwDao.java @@ -0,0 +1,23 @@ +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgYwAlm; + +/** + * 爆管液位相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgYwDao { + + /******** 爆管液位浓度报警状态 ********/ + public List findAllSbjz(); + public PgYwAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgYwAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java b/src/com/szpg/db/dao/impl/PgDSDaoImpl.java deleted file mode 100644 index e9d18cd..0000000 --- a/src/com/szpg/db/dao/impl/PgDSDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDSDao; -import com.szpg.db.data.PgDSAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgDSDaoImpl implements PgDSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgDSAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(0); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); - - return dsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgDSAlm dsalm = new PgDSAlm(); - Object[] item = tempList.get(i); - - dsalm.setId(((Number) item[0]).intValue()); - dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); - dsalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - dsalm.setLogtime(cal.getTime()); - dsalm.setUptime(cal.getTime()); - - list.add(dsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgDSAlm dsalm) { - return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_DS_ALM " + - "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入对射报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入对射报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index 7706852..40e4737 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -45,6 +45,9 @@ case "DS": key = "%对射%"; break; + case "FJ": + key = "%风机%"; + break; } String queryStr = "SELECT D.ID FROM PG_DEVICE D, PG_ACU A WHERE D.PARTITION = A.ACU_CODE AND A.ACU_DEST = ? AND D.DEVCODE LIKE '" + key + "' ORDER BY D.ID"; diff --git a/src/com/szpg/db/dao/impl/PgDsDaoImpl.java b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java new file mode 100644 index 0000000..d451678 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgDsDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDsDao; +import com.szpg.db.data.PgDsAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgDsDaoImpl implements PgDsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgDsAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(0); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询对射报警状态成功" + dsalm + "]"); + + return dsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, DSALM, LOGTIME, PGDEVICEID FROM PG_DS_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询对射报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgDsAlm dsalm = new PgDsAlm(); + Object[] item = tempList.get(i); + + dsalm.setId(((Number) item[0]).intValue()); + dsalm.setDsalm(Boolean.parseBoolean((String) item[1])); + dsalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + dsalm.setLogtime(cal.getTime()); + dsalm.setUptime(cal.getTime()); + + list.add(dsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgDsAlm dsalm) { + return addSbjzRecord(dsalm.getDsalm(), dsalm.getTmStr(), dsalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_DS_ALM " + + "(DSALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入对射报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入对射报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入对射报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgFjDaoImpl.java b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java new file mode 100644 index 0000000..cbab4c5 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgFjDaoImpl.java @@ -0,0 +1,469 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.data.PgFjRt; +import com.szpg.db.data.PgFjStat; +import com.szpg.db.util.ConnectionManager; + +public class PgFjDaoImpl implements PgFjDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgFjRt findLatestRtByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, RUNSECOND, RUNHOUR FROM PG_FJ_RT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjRt rt = new PgFjRt(); + Object[] item = tempList.get(0); + + rt.setId(((Number) item[0]).intValue()); + rt.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + rt.setLogtime(cal.getTime()); + rt.setUptime(cal.getTime()); + + rt.setRunsecond(Integer.parseInt((String) item[3])); + rt.setRunhour(Integer.parseInt((String) item[4])); + + logger.debug("根据ID查询风机最新运行时长成功" + rt + "]"); + + return rt; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addRtRecord(PgFjRt fjrt) { + return addRtRecord(fjrt.getRunsecond(), fjrt.getRunhour(), fjrt.getTmStr(), fjrt.getPgdeviceid()); + } + + @Override + public int addRtRecord(int second, int hour, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_RT " + + "(RUNSECOND, RUNHOUR, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = second; + params[1] = hour; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行时长成功[tm=" + tm + ", second=" + second + ", hour=" + hour + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行时长失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行时长异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllStat() { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findStatById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findStatByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询风机运行状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(i); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + list.add(stat); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgFjStat findLatestStatByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, LOGTIME, PGDEVICEID, AM, RUN, FLT, EN, NO, ROUT FROM PG_FJ_STAT WHERE PGDEVICEID = ? ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + PgFjStat stat = new PgFjStat(); + Object[] item = tempList.get(0); + + stat.setId(((Number) item[0]).intValue()); + stat.setPgdeviceid(((Number) item[2]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[1]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + stat.setLogtime(cal.getTime()); + stat.setUptime(cal.getTime()); + + stat.setAm(Boolean.parseBoolean((String) item[3])); + stat.setRun(Boolean.parseBoolean((String) item[4])); + stat.setFlt(Boolean.parseBoolean((String) item[5])); + stat.setEn(Boolean.parseBoolean((String) item[6])); + stat.setNo(Boolean.parseBoolean((String) item[7])); + stat.setRout(Boolean.parseBoolean((String) item[8])); + + logger.debug("根据ID查询风机最新运行状态成功" + stat + "]"); + + return stat; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询风机最新运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addStatRecord(PgFjStat fjstat) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(AM, RUN, FLT, EN, NO, ROUT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, ?, ?, ?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[9]; + params[0] = fjstat.getAm(); + params[1] = fjstat.getRun(); + params[2] = fjstat.getFlt(); + params[3] = fjstat.getEn(); + params[4] = fjstat.getNo(); + params[5] = fjstat.getRout(); + params[6] = fjstat.getTmStr(); + params[7] = fjstat.getTmStr(); + params[8] = fjstat.getPgdeviceid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功" + fjstat); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public int addStatRecord(boolean run, boolean flt, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_FJ_STAT " + + "(RUN, FLT, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = run; + params[1] = flt; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入风机运行状态成功[tm=" + tm + ", run=" + run + ", flt=" + flt + ", deviceid=" + deviceid + "]"); + else + logger.error("插入风机运行状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入风机运行状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java b/src/com/szpg/db/dao/impl/PgYWDaoImpl.java deleted file mode 100644 index 613c4c0..0000000 --- a/src/com/szpg/db/dao/impl/PgYWDaoImpl.java +++ /dev/null @@ -1,261 +0,0 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgYWDao; -import com.szpg.db.data.PgYWAlm; -import com.szpg.db.util.ConnectionManager; - -public class PgYWDaoImpl implements PgYWDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgYWAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(0); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); - - return ywalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgYWAlm ywalm = new PgYWAlm(); - Object[] item = tempList.get(i); - - ywalm.setId(((Number) item[0]).intValue()); - ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); - ywalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ywalm.setLogtime(cal.getTime()); - ywalm.setUptime(cal.getTime()); - - list.add(ywalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgYWAlm ywalm) { - return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_YW_ALM " + - "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入爆管液位报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入爆管液位报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} diff --git a/src/com/szpg/db/dao/impl/PgYwDaoImpl.java b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java new file mode 100644 index 0000000..c68faa3 --- /dev/null +++ b/src/com/szpg/db/dao/impl/PgYwDaoImpl.java @@ -0,0 +1,261 @@ +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgYwDao; +import com.szpg.db.data.PgYwAlm; +import com.szpg.db.util.ConnectionManager; + +public class PgYwDaoImpl implements PgYwDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgYwAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(0); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询爆管液位报警状态成功" + ywalm + "]"); + + return ywalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, YWALM, LOGTIME, PGDEVICEID FROM PG_YW_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询爆管液位报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgYwAlm ywalm = new PgYwAlm(); + Object[] item = tempList.get(i); + + ywalm.setId(((Number) item[0]).intValue()); + ywalm.setYwalm(Boolean.parseBoolean((String) item[1])); + ywalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ywalm.setLogtime(cal.getTime()); + ywalm.setUptime(cal.getTime()); + + list.add(ywalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgYwAlm ywalm) { + return addSbjzRecord(ywalm.getYwalm(), ywalm.getTmStr(), ywalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_YW_ALM " + + "(YWALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入爆管液位报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入爆管液位报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入爆管液位报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgDSAlm.java b/src/com/szpg/db/data/PgDSAlm.java deleted file mode 100644 index 86e28bb..0000000 --- a/src/com/szpg/db/data/PgDSAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 对射报警状态数据表 - * - * @author admin - * - */ -public class PgDSAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = -8336945265752238748L; - - private Integer id; - private Boolean dsalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getDsalm() { - return dsalm; - } - - public void setDsalm(Boolean dsalm) { - this.dsalm = dsalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgDsAlm.java b/src/com/szpg/db/data/PgDsAlm.java new file mode 100644 index 0000000..224d029 --- /dev/null +++ b/src/com/szpg/db/data/PgDsAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 对射报警状态数据表 + * + * @author admin + * + */ +public class PgDsAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -8336945265752238748L; + + private Integer id; + private Boolean dsalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getDsalm() { + return dsalm; + } + + public void setDsalm(Boolean dsalm) { + this.dsalm = dsalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgDSAlm[dsalm=" + dsalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjRt.java b/src/com/szpg/db/data/PgFjRt.java new file mode 100644 index 0000000..cfb502b --- /dev/null +++ b/src/com/szpg/db/data/PgFjRt.java @@ -0,0 +1,105 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.NumberFormat; +import com.szpg.util.TimeFormat; + +/** + * 风机累计运行时长数据表 + * + * @author admin + * + */ +public class PgFjRt implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3467596631537217402L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Integer runsecond; + private Integer runhour; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Integer getRunsecond() { + return runsecond; + } + + public void setRunsecond(Integer runsecond) { + this.runsecond = runsecond; + } + + public Integer getRunhour() { + return runhour; + } + + public void setRunhour(Integer runhour) { + this.runhour = runhour; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + public String getAccRunTime() { + return NumberFormat.format(runhour + runsecond / 3600, "0.00"); + } + + @Override + public String toString() { + return "PgFjRt[acc=" + getAccRunTime() + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgFjStat.java b/src/com/szpg/db/data/PgFjStat.java new file mode 100644 index 0000000..a9ade35 --- /dev/null +++ b/src/com/szpg/db/data/PgFjStat.java @@ -0,0 +1,136 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 风机运行状态数据表 + * + * @author admin + * + */ +public class PgFjStat implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -3826912263791110981L; + + private Integer id; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + private Boolean am; //就地/远控标志位 + private Boolean run; //运行状态标志位 + private Boolean flt; //故障报警 + private Boolean en; //手自动使能标志位 + private Boolean no; //禁止操作标志位 + private Boolean rout; //启停超时标志位 + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public Boolean getAm() { + return am; + } + + public void setAm(Boolean am) { + this.am = am; + } + + public Boolean getRun() { + return run; + } + + public void setRun(Boolean run) { + this.run = run; + } + + public Boolean getFlt() { + return flt; + } + + public void setFlt(Boolean flt) { + this.flt = flt; + } + + public Boolean getEn() { + return en; + } + + public void setEn(Boolean en) { + this.en = en; + } + + public Boolean getNo() { + return no; + } + + public void setNo(Boolean no) { + this.no = no; + } + + public Boolean getRout() { + return rout; + } + + public void setRout(Boolean rout) { + this.rout = rout; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgFjStat[run=" + run + ", flt=" + flt + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/db/data/PgYWAlm.java b/src/com/szpg/db/data/PgYWAlm.java deleted file mode 100644 index 9d9572f..0000000 --- a/src/com/szpg/db/data/PgYWAlm.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.szpg.db.data; - -import java.util.Date; - -import com.szpg.util.TimeFormat; - -/** - * 爆管液位浓度报警状态数据表 - * - * @author admin - * - */ -public class PgYWAlm implements java.io.Serializable { - - /** - * - */ - private static final long serialVersionUID = 3882791834818808488L; - - private Integer id; - private Boolean ywalm; - private Date logtime; - private Date uptime; - private Integer pgdeviceid; - - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Boolean getYwalm() { - return ywalm; - } - - public void setYwalm(Boolean ywalm) { - this.ywalm = ywalm; - } - - public Date getLogtime() { - return logtime; - } - - public void setLogtime(Date logtime) { - this.logtime = logtime; - } - - public Date getUptime() { - return uptime; - } - - public void setUptime(Date uptime) { - this.uptime = uptime; - } - - public Integer getPgdeviceid() { - return pgdeviceid; - } - - public void setPgdeviceid(Integer pgdeviceid) { - this.pgdeviceid = pgdeviceid; - } - - public void setTm(Date tm) { - this.logtime = tm; - this.uptime = tm; - } - - public String getTmStr() { - if (null != this.logtime) { - return TimeFormat.formatTimestamp(logtime); - } else { - return ""; - } - } - - public String getTmStrGB() { - if (null != this.logtime) { - return TimeFormat.format(logtime, "yyyyMMddHHmmss"); - } else { - return ""; - } - } - - @Override - public String toString() { - return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; - } -} diff --git a/src/com/szpg/db/data/PgYwAlm.java b/src/com/szpg/db/data/PgYwAlm.java new file mode 100644 index 0000000..44e831b --- /dev/null +++ b/src/com/szpg/db/data/PgYwAlm.java @@ -0,0 +1,91 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +/** + * 爆管液位浓度报警状态数据表 + * + * @author admin + * + */ +public class PgYwAlm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = 3882791834818808488L; + + private Integer id; + private Boolean ywalm; + private Date logtime; + private Date uptime; + private Integer pgdeviceid; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Boolean getYwalm() { + return ywalm; + } + + public void setYwalm(Boolean ywalm) { + this.ywalm = ywalm; + } + + public Date getLogtime() { + return logtime; + } + + public void setLogtime(Date logtime) { + this.logtime = logtime; + } + + public Date getUptime() { + return uptime; + } + + public void setUptime(Date uptime) { + this.uptime = uptime; + } + + public Integer getPgdeviceid() { + return pgdeviceid; + } + + public void setPgdeviceid(Integer pgdeviceid) { + this.pgdeviceid = pgdeviceid; + } + + public void setTm(Date tm) { + this.logtime = tm; + this.uptime = tm; + } + + public String getTmStr() { + if (null != this.logtime) { + return TimeFormat.formatTimestamp(logtime); + } else { + return ""; + } + } + + public String getTmStrGB() { + if (null != this.logtime) { + return TimeFormat.format(logtime, "yyyyMMddHHmmss"); + } else { + return ""; + } + } + + @Override + public String toString() { + return "PgYWAlm[ywalm=" + ywalm + ", logtime=" + TimeFormat.formatTimestamp(logtime) + "]"; + } +} diff --git a/src/com/szpg/plc/message/AppMessageConstants.java b/src/com/szpg/plc/message/AppMessageConstants.java index 1c84086..bedec39 100644 --- a/src/com/szpg/plc/message/AppMessageConstants.java +++ b/src/com/szpg/plc/message/AppMessageConstants.java @@ -16,4 +16,6 @@ public final static String CMD_TYPE_READYWSTATUS = "21"; //读取爆管液位报警状态命令 public final static String CMD_TYPE_READDSSTATUS = "22"; //读取对射报警状态命令 + public final static String CMD_TYPE_READFJSTAT = "23"; //读取风机运行状态命令 + public final static String CMD_TYPE_READFJRUNTIME = "24"; //读取风机运行时长命令 } diff --git a/src/com/szpg/plc/message/command/ReadMemoryCommand.java b/src/com/szpg/plc/message/command/ReadMemoryCommand.java index 3678a16..67c1a63 100644 --- a/src/com/szpg/plc/message/command/ReadMemoryCommand.java +++ b/src/com/szpg/plc/message/command/ReadMemoryCommand.java @@ -6,6 +6,8 @@ import com.szpg.plc.message.command.read.ReadCOStatusCommand; import com.szpg.plc.message.command.read.ReadCOValueCommand; import com.szpg.plc.message.command.read.ReadDSStatusCommand; +import com.szpg.plc.message.command.read.ReadFjRtCommand; +import com.szpg.plc.message.command.read.ReadFjStatCommand; import com.szpg.plc.message.command.read.ReadHSStatusCommand; import com.szpg.plc.message.command.read.ReadHSValueCommand; import com.szpg.plc.message.command.read.ReadO2StatusCommand; @@ -109,6 +111,11 @@ case AppMessageConstants.CMD_TYPE_READDSSTATUS: return new ReadDSStatusCommand(); + + case AppMessageConstants.CMD_TYPE_READFJSTAT: + return new ReadFjStatCommand(); + case AppMessageConstants.CMD_TYPE_READFJRUNTIME: + return new ReadFjRtCommand(); default: return null; diff --git a/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java b/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java new file mode 100644 index 0000000..88f7016 --- /dev/null +++ b/src/com/szpg/plc/message/command/read/ReadFjRtCommand.java @@ -0,0 +1,29 @@ +package com.szpg.plc.message.command.read; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.message.response.read.ReadFjRtCommandResponse; + +public class ReadFjRtCommand extends ReadMemoryCommand { + + /** + * + */ + private static final long serialVersionUID = -8726665168808135207L; + + @Override + public Class getResponseClass() { + return ReadFjRtCommandResponse.class; + } + + @Override + public String toString() { + return "向终端[" + getDestinationId() + "]发送查询风机累计运行时长命令"; + } + + @Override + public String getCommandType() { + return AppMessageConstants.CMD_TYPE_READFJRUNTIME; + } + +} diff --git a/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java b/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java new file mode 100644 index 0000000..bb995b7 --- /dev/null +++ b/src/com/szpg/plc/message/command/read/ReadFjStatCommand.java @@ -0,0 +1,29 @@ +package com.szpg.plc.message.command.read; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.message.response.read.ReadFjStatCommandResponse; + +public class ReadFjStatCommand extends ReadMemoryCommand { + + /** + * + */ + private static final long serialVersionUID = -4572411641346032487L; + + @Override + public Class getResponseClass() { + return ReadFjStatCommandResponse.class; + } + + @Override + public String toString() { + return "向终端[" + getDestinationId() + "]发送查询风机运行状态命令"; + } + + @Override + public String getCommandType() { + return AppMessageConstants.CMD_TYPE_READFJSTAT; + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java index e2b476b..df088df 100644 --- a/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadDSStatusCommandResponse.java @@ -3,9 +3,9 @@ import java.util.ArrayList; import java.util.List; -import com.szpg.db.dao.PgDSDao; +import com.szpg.db.dao.PgDsDao; import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgDSDaoImpl; +import com.szpg.db.dao.impl.PgDsDaoImpl; import com.szpg.db.dao.impl.PgDeviceDaoImpl; import com.szpg.plc.message.response.ReadMemoryCommandResponse; import com.szpg.util.TimeFormat; @@ -34,7 +34,7 @@ @Override public void afterAction() { // 1将对射报警数据存入数据库 - PgDSDao dsDao = new PgDSDaoImpl(); + PgDsDao dsDao = new PgDsDaoImpl(); PgDeviceDao deviceDao = new PgDeviceDaoImpl(); List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "DS"); diff --git a/src/com/szpg/plc/message/response/read/ReadFjRtCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadFjRtCommandResponse.java new file mode 100644 index 0000000..e1565f2 --- /dev/null +++ b/src/com/szpg/plc/message/response/read/ReadFjRtCommandResponse.java @@ -0,0 +1,59 @@ +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.impl.PgFjDaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.util.TimeFormat; + +public class ReadFjRtCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8310205838594006103L; + + private List fjscs; // 风机运行时长——秒数 + private List fjsch; // 风机运行时长——小时数 + + public ReadFjRtCommandResponse() { + fjscs = new ArrayList(); + fjsch = new ArrayList(); + } + + public List getFjscs() { + return fjscs; + } + + public void setFjscs(List fjscs) { + this.fjscs = fjscs; + } + + public List getFjsch() { + return fjsch; + } + + public void setFjsch(List fjsch) { + this.fjsch = fjsch; + } + + @Override + public void afterAction() { + // 1将风机累计运行时长数据存入数据库 + PgFjDao fjDao = new PgFjDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "FJ"); + + for (int i = 0; i < fjscs.size(); i++) { + if (i < ids.size()) { + fjDao.addRtRecord(fjscs.get(i), fjsch.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), ids.get(i)); + } + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java new file mode 100644 index 0000000..15bccaa --- /dev/null +++ b/src/com/szpg/plc/message/response/read/ReadFjStatCommandResponse.java @@ -0,0 +1,59 @@ +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgFjDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgFjDaoImpl; +import com.szpg.db.data.PgFjStat; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; + +public class ReadFjStatCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6983756717484259517L; + + private List fjzt; + + public ReadFjStatCommandResponse() { + fjzt = new ArrayList(); + } + + public List getFjzt() { + return fjzt; + } + + public void setFjzt(List fjzt) { + this.fjzt = fjzt; + } + + @Override + public void afterAction() { + // 1将风机运行状态数据存入数据库 + PgFjDao fjDao = new PgFjDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "FJ"); + + for (int i = 0; i < fjzt.size(); i++) { + if (i < ids.size()) { + fjzt.get(i).setPgdeviceid(ids.get(i)); + fjzt.get(i).setTm(this.getTime().getTime()); + fjDao.addStatRecord(fjzt.get(i)); + + // 有报警状态 + if (fjzt.get(i).getFlt() == true) { + // TODO + // 1存入报警管理表 + + + } + } + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java index c2674f2..e0547af 100644 --- a/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadYWStatusCommandResponse.java @@ -3,9 +3,9 @@ import java.util.ArrayList; import java.util.List; -import com.szpg.db.dao.PgYWDao; +import com.szpg.db.dao.PgYwDao; import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgYWDaoImpl; +import com.szpg.db.dao.impl.PgYwDaoImpl; import com.szpg.db.dao.impl.PgDeviceDaoImpl; import com.szpg.plc.message.response.ReadMemoryCommandResponse; import com.szpg.util.TimeFormat; @@ -34,7 +34,7 @@ @Override public void afterAction() { // 1将爆管液位浓度数据存入数据库 - PgYWDao ywDao = new PgYWDaoImpl(); + PgYwDao ywDao = new PgYwDaoImpl(); PgDeviceDao deviceDao = new PgDeviceDaoImpl(); List ids = deviceDao.findDeviceIdByDestAndType(this.getMessageProducerId(), "YW"); diff --git a/src/com/szpg/plc/protocol/fins/FINSDTProtocolImp.java b/src/com/szpg/plc/protocol/fins/FINSDTProtocolImp.java index a65488e..3b3f26b 100644 --- a/src/com/szpg/plc/protocol/fins/FINSDTProtocolImp.java +++ b/src/com/szpg/plc/protocol/fins/FINSDTProtocolImp.java @@ -9,6 +9,7 @@ import com.szpg.db.dao.PgAcuRdcmdDao; import com.szpg.db.dao.impl.PgAcuRdcmdDaoImpl; import com.szpg.db.data.PgAcuRdcmd; +import com.szpg.db.data.PgFjStat; import com.szpg.plc.message.AppMessage; import com.szpg.plc.message.AppMessageConstants; import com.szpg.plc.message.UnKnownMessage; @@ -20,6 +21,8 @@ import com.szpg.plc.message.response.read.ReadCOStatusCommandResponse; import com.szpg.plc.message.response.read.ReadCOValueCommandResponse; import com.szpg.plc.message.response.read.ReadDSStatusCommandResponse; +import com.szpg.plc.message.response.read.ReadFjRtCommandResponse; +import com.szpg.plc.message.response.read.ReadFjStatCommandResponse; import com.szpg.plc.message.response.read.ReadHSStatusCommandResponse; import com.szpg.plc.message.response.read.ReadHSValueCommandResponse; import com.szpg.plc.message.response.read.ReadO2StatusCommandResponse; @@ -173,6 +176,13 @@ case AppMessageConstants.CMD_TYPE_READDSSTATUS: received = bytesToReadDSStatusCommandResponse(finsFrame, readCmd); break; + + case AppMessageConstants.CMD_TYPE_READFJSTAT: + received = bytesToReadFjStatCommandResponse(finsFrame, readCmd); + break; + case AppMessageConstants.CMD_TYPE_READFJRUNTIME: + received = bytesToReadFjRtCommandResponse(finsFrame, readCmd); + break; } // 4将已响应的命令删除 @@ -629,6 +639,94 @@ return rdscr; } + + + /** + * 将查询风机运行状态响应消息字节数组转换为消息对象 + * + * @param byteMessage + * @return + */ + private AppMessage bytesToReadFjStatCommandResponse(FINSByteFrame finsFrame, PgAcuRdcmd cmd) { + ReadFjStatCommandResponse rfscr = new ReadFjStatCommandResponse(); + + byte[] body = finsFrame.TEXT_DATA_BODY; + rfscr.setMessageProducerId(FINSByteFrameTool.getControlDest(finsFrame)); + if (body[2] == 0x00 && body[3] == 0x00) { + // 正常返回 + byte[] data = FINSByteFrameTool.getDataWithoutEndCode(finsFrame); //获取返回的内存 + int fjct = cmd.getCount_sensor(); //风机的数量 + int bitct = cmd.getCount_bit(); //读取的位的数量,用于计算字节数 + int bytect = (bitct % 16 == 0 ? bitct / 16 : bitct / 16 + 1) * 2; + String dataStr = ""; + for (int i = 0; i < bytect - 1; i = i + 2) { + dataStr = ByteUtil.binToBinString(new byte[] { data[i], data[i + 1] }) + dataStr; //D15-D0顺序 + } + + for (int i = 0; i < fjct; i++) { + char amBit = dataStr.charAt(dataStr.length() - i * 8 - 1); + char runBit = dataStr.charAt(dataStr.length() - i * 8 - 2); + char fltBit = dataStr.charAt(dataStr.length() - i * 8 - 3); + char enBit = dataStr.charAt(dataStr.length() - i * 8 - 4); + char noBit = dataStr.charAt(dataStr.length() - i * 8 - 5); + char routBit = dataStr.charAt(dataStr.length() - i * 8 - 8); + + PgFjStat fjzt = new PgFjStat(); + fjzt.setAm(amBit == '1' ? true : false); + fjzt.setRun(runBit == '1' ? true : false); + fjzt.setFlt(fltBit == '1' ? true : false); + fjzt.setEn(enBit == '1' ? true : false); + fjzt.setNo(noBit == '1' ? true : false); + fjzt.setRout(routBit == '1' ? true : false); + + rfscr.getFjzt().add(fjzt); + } + } + + return rfscr; + } + + + /** + * 将读取风机运行时长响应字节数组转换为消息对象 + * + * @param finsFrame + * @return + */ + private AppMessage bytesToReadFjRtCommandResponse(FINSByteFrame finsFrame, PgAcuRdcmd cmd) { + ReadFjRtCommandResponse rfrcr = new ReadFjRtCommandResponse(); + + byte[] body = finsFrame.TEXT_DATA_BODY; + rfrcr.setMessageProducerId(FINSByteFrameTool.getControlDest(finsFrame)); + if (body[2] == 0x00 && body[3] == 0x00) { + // 正常返回 + byte[] data = FINSByteFrameTool.getDataWithoutEndCode(finsFrame); //获取返回的内存 + int fjct = cmd.getCount_sensor(); //获取风机数量 + + int offset = cmd.getOffset(); //获取风机小时数变量的内存地址偏移量 + offset = offset + fjct * 2; + + // 解析并存储风机运行时长秒数 + for (int i = 0; i < fjct; i++) { + byte[] secondByte = new byte[] { data[i*2], data[i*2 + 1] }; + + int second = ByteUtil.binToInt(secondByte); // 运行时长的秒数 + + rfrcr.getFjscs().add(second); + } + + // 解析并存储风机运行时长小时数 + for (int i = 0; i < fjct; i++) { + byte[] hourByte = new byte[] { data[i*4 + 2 + offset], data[i*4 + 3 + offset], data[i*4 + offset], data[i*4 + 1 + offset] }; + + int hourValue = ByteUtil.binToInt(hourByte); //运行时长的小时数 + + rfrcr.getFjsch().add(hourValue); + } + } + + return rfrcr; + } /** * 将消息对象解析为字节数组 @@ -644,20 +742,6 @@ frame = LinkCommandToBytes((LinkCommand) message); } -// // 读取甲烷参数内存命令 -// if (message instanceof ReadCH4ValueCommand) { -// frame = ReadCH4ValueCommandToBytes((ReadCH4ValueCommand) message); -// } else if (message instanceof ReadCH4StatusCommand) { -// frame = ReadCH4StatusCommandToBytes((ReadCH4StatusCommand) message); -// } -// -// // 读取温湿度命令 -// else if (message instanceof ReadWSValueCommand) { -// frame = ReadWSValueCommandToBytes((ReadWSValueCommand) message); -// } else if (message instanceof ReadWSStatusCommand) { -// frame = ReadWSStatusCommandToBytes((ReadWSStatusCommand) message); -// } - // 读内存命令 if (message instanceof ReadMemoryCommand) { frame = readMemoryCommandToBytes((ReadMemoryCommand) message); diff --git a/src/com/szpg/task/ReadFjRtTask.java b/src/com/szpg/task/ReadFjRtTask.java new file mode 100644 index 0000000..afa5bce --- /dev/null +++ b/src/com/szpg/task/ReadFjRtTask.java @@ -0,0 +1,48 @@ +package com.szpg.task; + +import com.szpg.db.dao.impl.PgAcuRdcmdDaoImpl; +import com.szpg.db.data.PgAcuRdcmd; +import com.szpg.plc.message.AppCommand; +import com.szpg.plc.message.command.read.ReadFjRtCommand; +import com.szpg.plc.protocol.DTProtocolInterface; +import com.szpg.plc.protocol.ProtocolFactory; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; + +public class ReadFjRtTask implements Runnable { + + private ACUClient client; + private AppCommand appCommand; + + public ReadFjRtTask(ACUClient client, AppCommand command) { + this.client = client; + this.appCommand = command; + } + + @Override + public void run() { + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + byte[] content = finspi.messageToBytes(appCommand); + + // 发送读取风机运行时长内存命令 + ACUClientUtil.getInstance().sendACUCommand(client, content); + + ReadFjRtCommand fjRtCmd = (ReadFjRtCommand) appCommand; + + // 发送完成之后将命令保存在数据库中 + PgAcuRdcmd cmd = new PgAcuRdcmd(); + cmd.setCmd_type(fjRtCmd.getCommandType()); + cmd.setDest(fjRtCmd.getDestinationId()); + cmd.setMem_area_cd(ByteUtil.binToHexString(new byte[] { fjRtCmd.getMemoryArea() })); + cmd.setStart_mem_word(fjRtCmd.getStartAddress().substring(0, 4)); + cmd.setStart_mem_bit(fjRtCmd.getStartAddress().substring(4)); + cmd.setCount_word(fjRtCmd.getCountWord()); + cmd.setCount_bit(fjRtCmd.getCountBit()); + cmd.setCount_sensor(fjRtCmd.getCountSensor()); + cmd.setOffset(fjRtCmd.getOffset()); + + new PgAcuRdcmdDaoImpl().addCmdRecord(cmd); + } + +} diff --git a/src/com/szpg/task/ReadFjStatTask.java b/src/com/szpg/task/ReadFjStatTask.java new file mode 100644 index 0000000..646b02b --- /dev/null +++ b/src/com/szpg/task/ReadFjStatTask.java @@ -0,0 +1,47 @@ +package com.szpg.task; + +import com.szpg.db.dao.impl.PgAcuRdcmdDaoImpl; +import com.szpg.db.data.PgAcuRdcmd; +import com.szpg.plc.message.AppCommand; +import com.szpg.plc.message.command.read.ReadFjStatCommand; +import com.szpg.plc.protocol.DTProtocolInterface; +import com.szpg.plc.protocol.ProtocolFactory; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; + +public class ReadFjStatTask implements Runnable { + + private ACUClient client; + private AppCommand appCommand; + + public ReadFjStatTask(ACUClient client, AppCommand command) { + this.client = client; + this.appCommand = command; + } + + @Override + public void run() { + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + byte[] content = finspi.messageToBytes(appCommand); + + // 发送读取风机运行状态内存命令 + ACUClientUtil.getInstance().sendACUCommand(client, content); + + ReadFjStatCommand fjStatCmd = (ReadFjStatCommand) appCommand; + + // 发送完成之后将命令保存在数据库中 + PgAcuRdcmd cmd = new PgAcuRdcmd(); + cmd.setCmd_type(fjStatCmd.getCommandType()); + cmd.setDest(fjStatCmd.getDestinationId()); + cmd.setMem_area_cd(ByteUtil.binToHexString(new byte[] { fjStatCmd.getMemoryArea() })); + cmd.setStart_mem_word(fjStatCmd.getStartAddress().substring(0, 4)); + cmd.setStart_mem_bit(fjStatCmd.getStartAddress().substring(4)); + cmd.setCount_word(fjStatCmd.getCountWord()); + cmd.setCount_bit(fjStatCmd.getCountBit()); + cmd.setCount_sensor(fjStatCmd.getCountSensor()); + + new PgAcuRdcmdDaoImpl().addCmdRecord(cmd); + } + +}