Commit 59e72a4b0b8b1fa9a517ba8de9e2bd91be47a001
1 parent
2237c740
update...
Showing
1 changed file
with
49 additions
and
31 deletions
src/main/java/com/bsth/data/car_out_info/CarOutInfoHandler.java
| 1 | package com.bsth.data.car_out_info; | 1 | package com.bsth.data.car_out_info; |
| 2 | 2 | ||
| 3 | +import com.bsth.Application; | ||
| 3 | import com.bsth.data.BasicData; | 4 | import com.bsth.data.BasicData; |
| 4 | import com.bsth.data.schedule.DayOfSchedule; | 5 | import com.bsth.data.schedule.DayOfSchedule; |
| 5 | import com.bsth.data.schedule.ScheduleComparator; | 6 | import com.bsth.data.schedule.ScheduleComparator; |
| @@ -12,13 +13,18 @@ import org.springframework.beans.factory.annotation.Autowired; | @@ -12,13 +13,18 @@ import org.springframework.beans.factory.annotation.Autowired; | ||
| 12 | import org.springframework.boot.CommandLineRunner; | 13 | import org.springframework.boot.CommandLineRunner; |
| 13 | import org.springframework.jdbc.core.BatchPreparedStatementSetter; | 14 | import org.springframework.jdbc.core.BatchPreparedStatementSetter; |
| 14 | import org.springframework.jdbc.core.JdbcTemplate; | 15 | import org.springframework.jdbc.core.JdbcTemplate; |
| 16 | +import org.springframework.jdbc.datasource.DataSourceTransactionManager; | ||
| 15 | import org.springframework.stereotype.Component; | 17 | import org.springframework.stereotype.Component; |
| 16 | import org.springframework.stereotype.Service; | 18 | import org.springframework.stereotype.Service; |
| 19 | +import org.springframework.transaction.TransactionDefinition; | ||
| 20 | +import org.springframework.transaction.TransactionStatus; | ||
| 17 | import org.springframework.transaction.annotation.Transactional; | 21 | import org.springframework.transaction.annotation.Transactional; |
| 22 | +import org.springframework.transaction.support.DefaultTransactionDefinition; | ||
| 18 | 23 | ||
| 19 | import java.sql.PreparedStatement; | 24 | import java.sql.PreparedStatement; |
| 20 | import java.sql.SQLException; | 25 | import java.sql.SQLException; |
| 21 | import java.util.*; | 26 | import java.util.*; |
| 27 | +import java.util.concurrent.TimeUnit; | ||
| 22 | 28 | ||
| 23 | /** | 29 | /** |
| 24 | * 发车信息表处理程序 | 30 | * 发车信息表处理程序 |
| @@ -60,7 +66,7 @@ public class CarOutInfoHandler implements CommandLineRunner, CarOutInfo { | @@ -60,7 +66,7 @@ public class CarOutInfoHandler implements CommandLineRunner, CarOutInfo { | ||
| 60 | Set<String> ks = lpScheduleMap.keySet(); | 66 | Set<String> ks = lpScheduleMap.keySet(); |
| 61 | String prefix = lineCode + "_"; | 67 | String prefix = lineCode + "_"; |
| 62 | for (String k : ks) { | 68 | for (String k : ks) { |
| 63 | - if (k.indexOf(prefix) != -1) { | 69 | + if (k.startsWith(prefix)) { |
| 64 | list.addAll(lpScheduleMap.get(k)); | 70 | list.addAll(lpScheduleMap.get(k)); |
| 65 | } | 71 | } |
| 66 | } | 72 | } |
| @@ -90,36 +96,48 @@ public class CarOutInfoHandler implements CommandLineRunner, CarOutInfo { | @@ -90,36 +96,48 @@ public class CarOutInfoHandler implements CommandLineRunner, CarOutInfo { | ||
| 90 | downArray = nexts(downs); | 96 | downArray = nexts(downs); |
| 91 | 97 | ||
| 92 | final List<ScheduleRealInfo> pstArray = mergeArray(upArray, downArray); | 98 | final List<ScheduleRealInfo> pstArray = mergeArray(upArray, downArray); |
| 93 | - //删除 | ||
| 94 | - jdbcTemplate.update("delete from bsth_t_clfcxxb where line_code=?", lineCode); | ||
| 95 | - //重新写入 | ||
| 96 | - jdbcTemplate.batchUpdate("insert into bsth_t_clfcxxb(rq, line_code, line_name, lp_name, lp_sn, dfsj, nbbm, cph, bc_type, end_station_name, updown, jGh, jName, remarks, sn)" + | ||
| 97 | - " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", new BatchPreparedStatementSetter() { | ||
| 98 | - @Override | ||
| 99 | - public void setValues(PreparedStatement ps, int i) throws SQLException { | ||
| 100 | - ScheduleRealInfo sch = pstArray.get(i); | ||
| 101 | - ps.setString(1, sch.getScheduleDateStr()); | ||
| 102 | - ps.setString(2, sch.getXlBm()); | ||
| 103 | - ps.setString(3, sch.getXlName()); | ||
| 104 | - ps.setString(4, /*sch.getLpName()*/"0"); | ||
| 105 | - ps.setInt(5, sch.getFcno()==null?-1:sch.getFcno()); | ||
| 106 | - ps.setString(6, sch.getDfsj().replace(":", "")); | ||
| 107 | - ps.setString(7, sch.getClZbh().replace("-", "")); | ||
| 108 | - ps.setString(8, BasicData.nbbmCompanyPlateMap.get(sch.getClZbh())); | ||
| 109 | - ps.setString(9, bcTypeMap.containsKey(sch.getBcType()) ? bcTypeMap.get(sch.getBcType()) : sch.getBcType()); | ||
| 110 | - ps.setString(10, sch.getZdzName()); | ||
| 111 | - ps.setInt(11, Integer.parseInt(sch.getXlDir())); | ||
| 112 | - ps.setString(12, sch.getjGh()); | ||
| 113 | - ps.setString(13, sch.getjName()); | ||
| 114 | - ps.setString(14, sch.getRemarks()); | ||
| 115 | - ps.setInt(15, sch.getFcpSn()); | ||
| 116 | - } | 99 | + //编程式事务 |
| 100 | + DataSourceTransactionManager tran = new DataSourceTransactionManager(jdbcTemplate.getDataSource()); | ||
| 101 | + DefaultTransactionDefinition def = new DefaultTransactionDefinition(); | ||
| 102 | + def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); | ||
| 103 | + TransactionStatus status = tran.getTransaction(def); | ||
| 104 | + | ||
| 105 | + try{ | ||
| 106 | + //删除 | ||
| 107 | + jdbcTemplate.update("delete from bsth_t_clfcxxb where line_code=?", lineCode); | ||
| 108 | + //重新写入 | ||
| 109 | + jdbcTemplate.batchUpdate("insert into bsth_t_clfcxxb(rq, line_code, line_name, lp_name, lp_sn, dfsj, nbbm, cph, bc_type, end_station_name, updown, jGh, jName, remarks, sn)" + | ||
| 110 | + " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", new BatchPreparedStatementSetter() { | ||
| 111 | + @Override | ||
| 112 | + public void setValues(PreparedStatement ps, int i) throws SQLException { | ||
| 113 | + ScheduleRealInfo sch = pstArray.get(i); | ||
| 114 | + ps.setString(1, sch.getScheduleDateStr()); | ||
| 115 | + ps.setString(2, sch.getXlBm()); | ||
| 116 | + ps.setString(3, sch.getXlName()); | ||
| 117 | + ps.setString(4, /*sch.getLpName()*/"0"); | ||
| 118 | + ps.setInt(5, sch.getFcno()==null?-1:sch.getFcno()); | ||
| 119 | + ps.setString(6, sch.getDfsj().replace(":", "")); | ||
| 120 | + ps.setString(7, sch.getClZbh().replace("-", "")); | ||
| 121 | + ps.setString(8, BasicData.nbbmCompanyPlateMap.get(sch.getClZbh())); | ||
| 122 | + ps.setString(9, bcTypeMap.containsKey(sch.getBcType()) ? bcTypeMap.get(sch.getBcType()) : sch.getBcType()); | ||
| 123 | + ps.setString(10, sch.getZdzName()); | ||
| 124 | + ps.setInt(11, Integer.parseInt(sch.getXlDir())); | ||
| 125 | + ps.setString(12, sch.getjGh()); | ||
| 126 | + ps.setString(13, sch.getjName()); | ||
| 127 | + ps.setString(14, sch.getRemarks()); | ||
| 128 | + ps.setInt(15, sch.getFcpSn()); | ||
| 129 | + } | ||
| 117 | 130 | ||
| 118 | - @Override | ||
| 119 | - public int getBatchSize() { | ||
| 120 | - return pstArray.size(); | ||
| 121 | - } | ||
| 122 | - }); | 131 | + @Override |
| 132 | + public int getBatchSize() { | ||
| 133 | + return pstArray.size(); | ||
| 134 | + } | ||
| 135 | + }); | ||
| 136 | + | ||
| 137 | + tran.commit(status); | ||
| 138 | + }catch (Exception e){ | ||
| 139 | + tran.rollback(status); | ||
| 140 | + } | ||
| 123 | } | 141 | } |
| 124 | 142 | ||
| 125 | private List<ScheduleRealInfo> mergeArray(ScheduleRealInfo[] upArray, ScheduleRealInfo[] downArray) { | 143 | private List<ScheduleRealInfo> mergeArray(ScheduleRealInfo[] upArray, ScheduleRealInfo[] downArray) { |
| @@ -190,7 +208,7 @@ public class CarOutInfoHandler implements CommandLineRunner, CarOutInfo { | @@ -190,7 +208,7 @@ public class CarOutInfoHandler implements CommandLineRunner, CarOutInfo { | ||
| 190 | bcTypeMap.put("venting", "直放"); | 208 | bcTypeMap.put("venting", "直放"); |
| 191 | bcTypeMap.put("major", "放站"); | 209 | bcTypeMap.put("major", "放站"); |
| 192 | bcTypeMap.put("ldks", "两点间空驶"); | 210 | bcTypeMap.put("ldks", "两点间空驶"); |
| 193 | - //Application.mainServices.scheduleWithFixedDelay(updateInfoThread, 60, 40, TimeUnit.SECONDS); | 211 | + Application.mainServices.scheduleWithFixedDelay(updateInfoThread, 60, 40, TimeUnit.SECONDS); |
| 194 | } | 212 | } |
| 195 | 213 | ||
| 196 | @Component | 214 | @Component |