IBPSRepository.java 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. package com.jyxt.getdatabyview.view;
  2. import com.jyxt.getdatabyview.view.entity.CollectorEntity;
  3. import com.jyxt.getdatabyview.view.entity.MonitoredEntity;
  4. import com.jyxt.getdatabyview.view.entity.WSDEntity;
  5. import org.slf4j.Logger;
  6. import org.slf4j.LoggerFactory;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.beans.factory.annotation.Qualifier;
  9. import org.springframework.beans.factory.annotation.Value;
  10. import org.springframework.jdbc.core.BeanPropertyRowMapper;
  11. import org.springframework.jdbc.core.JdbcTemplate;
  12. import org.springframework.jdbc.core.PreparedStatementCreator;
  13. import org.springframework.jdbc.core.RowMapper;
  14. import org.springframework.stereotype.Repository;
  15. import java.sql.*;
  16. import java.time.LocalTime;
  17. import java.time.format.DateTimeFormatter;
  18. import java.util.ArrayList;
  19. import java.util.List;
  20. @Repository
  21. public class IBPSRepository {
  22. private static final Logger log = LoggerFactory.getLogger(IBPSRepository.class);
  23. @Autowired
  24. @Qualifier("secondJdbcTemplate")
  25. private JdbcTemplate jdbcTemplate;
  26. @Value("${config.testmode}")
  27. private String testmode;
  28. public List<String> getExistID(){
  29. List<String> existIDList = new ArrayList<String>();
  30. /**
  31. * 正式启用开启这一段
  32. * String existSql = "select id_ from t_dsfwsdjlb where Date(collectTime) = CURDATE()"
  33. */
  34. String existSql = "select id_ from t_dsfwsdjlb where Date(collectTime) = CURDATE()";
  35. existIDList = jdbcTemplate.queryForList(existSql, String.class);
  36. return existIDList;
  37. }
  38. public List<CollectorEntity> getCollectorlist(){
  39. RowMapper<CollectorEntity> collectorRowMapper = new BeanPropertyRowMapper<>(CollectorEntity.class);
  40. String collectorSql = "select deviceNo,deviceName,collectID,collectName,type from t_cjqsbglpzb where enable='1'";
  41. List<CollectorEntity> collectorList = jdbcTemplate.query(collectorSql, collectorRowMapper);
  42. return collectorList;
  43. }
  44. public void save(final WSDEntity wsdEntity){
  45. //sql语句
  46. final String sql = "insert into t_dsfwsdjlb (id_,create_time_,collectTime,result,resultHigh,resultLow,deviceNo,deviceName,collectID, "+
  47. "collectName,shiYanZu,note,type,area,di_dian_,room,controlFlag) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ";
  48. if((testmode.equals("1")) || (testmode.equals("2"))){
  49. log.info("pretend to insert: id:{},Res:{},ResH:{},ResL:{},DevName:{},ColID:{},ColName:{},ShiYanZu:{},Type:{},Flag:{}",
  50. wsdEntity.getId(),wsdEntity.getResult(),wsdEntity.getResultHigh(),wsdEntity.getResultLow(),wsdEntity.getDeviceName(),
  51. wsdEntity.getCollectID(),wsdEntity.getCollectName(),wsdEntity.getShiYanZu(),wsdEntity.getType(),wsdEntity.getControlFlag()
  52. );
  53. }
  54. if(testmode.equals("0")){
  55. log.info("ready to insert: id:{},Res:{},ResH:{},ResL:{},DevName:{},ColID:{},ColName:{},ShiYanZu:{},Type:{},Flag:{}",
  56. wsdEntity.getId(),wsdEntity.getResult(),wsdEntity.getResultHigh(),wsdEntity.getResultLow(),wsdEntity.getDeviceName(),
  57. wsdEntity.getCollectID(),wsdEntity.getCollectName(),wsdEntity.getShiYanZu(),wsdEntity.getType(),wsdEntity.getControlFlag()
  58. );
  59. jdbcTemplate.update(new PreparedStatementCreator() {
  60. public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
  61. PreparedStatement prepareStatement = connection.prepareStatement(sql);
  62. prepareStatement.setString(1,wsdEntity.getId());
  63. prepareStatement.setTimestamp(2, new java.sql.Timestamp(wsdEntity.getCreateTime().getTime()));
  64. prepareStatement.setTimestamp(3, new java.sql.Timestamp(wsdEntity.getCollectTime().getTime()));
  65. prepareStatement.setString(4,wsdEntity.getResult());
  66. prepareStatement.setString(5,wsdEntity.getResultHigh());
  67. prepareStatement.setString(6,wsdEntity.getResultLow());
  68. prepareStatement.setString(7,wsdEntity.getDeviceNo());
  69. prepareStatement.setString(8,wsdEntity.getDeviceName());
  70. prepareStatement.setString(9,wsdEntity.getCollectID());
  71. prepareStatement.setString(10,wsdEntity.getCollectName());
  72. prepareStatement.setString(11,wsdEntity.getShiYanZu());
  73. prepareStatement.setString(12,wsdEntity.getNote());
  74. prepareStatement.setString(13,wsdEntity.getType());
  75. prepareStatement.setString(14,wsdEntity.getArea());
  76. prepareStatement.setString(15,wsdEntity.getDiDian());
  77. prepareStatement.setString(16,wsdEntity.getRoom());
  78. prepareStatement.setString(17,wsdEntity.getControlFlag());
  79. return prepareStatement;
  80. }
  81. });
  82. }
  83. }
  84. public List<MonitoredEntity> getUndoFridgeList(String curdate) {
  85. List<MonitoredEntity> undoFridgeList = jdbcTemplate.query(
  86. "select * from t_bxwdjkjlb where date(create_time_)=? and shi_fou_guo_shen_='待处理'",
  87. new RowMapper<MonitoredEntity>() {
  88. @Override
  89. public MonitoredEntity mapRow(ResultSet rs, int rowNum) throws SQLException {
  90. MonitoredEntity entity = new MonitoredEntity();
  91. entity.setId(rs.getString("id_"));
  92. entity.setDeviceNo(rs.getString("bing_xiang_bian_h"));
  93. entity.setJsonStr(rs.getString("lie_biao_shu_ju_"));
  94. return entity;
  95. }
  96. },
  97. curdate // 使用预编译参数防止SQL注入
  98. );
  99. return undoFridgeList;
  100. }
  101. public List<WSDEntity> getWSDEntityList(String CurDate, String Type,String DeviceNo) {
  102. List<WSDEntity> wsdEntityList = jdbcTemplate.query(
  103. "select id_,collecttime,collectID,collectName,shiYanZu,result,deviceNo,type,note,controlFlag from t_dsfwsdjlb where date(collectTime)=? and deviceNo=? order by collectTime desc",
  104. new RowMapper<WSDEntity>() {
  105. @Override
  106. public WSDEntity mapRow(ResultSet rs, int rowNum) throws SQLException {
  107. WSDEntity entity = new WSDEntity();
  108. entity.setId(rs.getString("id_"));
  109. entity.setCollectTime(rs.getTimestamp("collectTime"));
  110. entity.setCollectID(rs.getString("collectID"));
  111. entity.setCollectName(rs.getString("collectName"));
  112. entity.setShiYanZu(rs.getString("shiYanZu"));
  113. entity.setResult(rs.getString("result"));
  114. entity.setDeviceNo(rs.getString("deviceNo"));
  115. entity.setType(rs.getString("type"));
  116. entity.setNote(rs.getString("note"));
  117. entity.setControlFlag(rs.getString("controlFlag"));
  118. return entity;
  119. }
  120. },
  121. CurDate,DeviceNo // 使用预编译参数防止SQL注入
  122. );
  123. return wsdEntityList;
  124. }
  125. /**
  126. * 20250619 huangws
  127. * 保存被监测设备的温湿度结果
  128. * 如果还没未完成的不会改变是否过审的状态
  129. * @param undoMonitorID
  130. * @param hasFinished
  131. * @param newJsonStr
  132. */
  133. public void saveMonitoredData(String undoMonitorID, String hasFinished, String contrlFlag, String newJsonStr){
  134. String shangWuJianKon = LocalTime.now().format(DateTimeFormatter.ofPattern("HH:mm"));
  135. final String sql = hasFinished.equals("1")
  136. ? "update t_bxwdjkjlb set lie_biao_shu_ju_=?, update_time_=?, shang_wu_jian_kon=?, bei_zhu_='自动导入', shi_kong_zhuang_t =?, shi_fou_guo_shen_='已完成' where id_=?"
  137. : "update t_bxwdjkjlb set lie_biao_shu_ju_=?, update_time_=?, shang_wu_jian_kon=?, bei_zhu_='自动导入', shi_kong_zhuang_t =? where id_=?";
  138. jdbcTemplate.update(new PreparedStatementCreator() {
  139. public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
  140. PreparedStatement prepareStatement = connection.prepareStatement(sql);
  141. prepareStatement.setString(1, newJsonStr);
  142. prepareStatement.setTimestamp(2, new Timestamp(System.currentTimeMillis())); // 设置当前时间
  143. prepareStatement.setString(3, shangWuJianKon); // 设置上午时间
  144. prepareStatement.setString(4, contrlFlag);
  145. prepareStatement.setString(5, undoMonitorID);
  146. return prepareStatement;
  147. }
  148. });
  149. }
  150. }