|
|
|
|
@ -5,6 +5,7 @@ import java.io.FileNotFoundException;
|
|
|
|
|
import java.io.PrintWriter; |
|
|
|
|
import java.sql.Connection; |
|
|
|
|
import java.sql.PreparedStatement; |
|
|
|
|
import java.sql.ResultSet; |
|
|
|
|
import java.sql.SQLException; |
|
|
|
|
import java.sql.Timestamp; |
|
|
|
|
import java.sql.Types; |
|
|
|
|
@ -97,6 +98,9 @@ public class TrainMovementProcessor extends Thread{
|
|
|
|
|
try( |
|
|
|
|
Connection conn = DatabaseManager.getInstance().getConnection(); |
|
|
|
|
PreparedStatement pstmtTA = conn.prepareStatement("REPLACE INTO current_train VALUES (?,?,?,?,?,?)"); |
|
|
|
|
PreparedStatement pstmtQsid = conn.prepareStatement("SELECT suid FROM all_schedule " |
|
|
|
|
+ "WHERE train_uid = ? AND ? BETWEEN start_date AND end_date AND days LIKE get_wd_str(?) " |
|
|
|
|
+ "ORDER BY CASE sch_type WHEN 'CAN' THEN 1 WHEN 'VAR' THEN 2 WHEN 'OVL' THEN 3 ELSE 4 END ASC LIMIT 1") |
|
|
|
|
){ |
|
|
|
|
for(JSONObject obj:procMap.get("0001")) { |
|
|
|
|
String trainId = obj.getJSONObject("body").optString("train_id"); |
|
|
|
|
@ -114,16 +118,20 @@ public class TrainMovementProcessor extends Thread{
|
|
|
|
|
} |
|
|
|
|
String serviceCode = obj.getJSONObject("body").optString("train_service_code"); |
|
|
|
|
long activationTime = obj.getJSONObject("body").optLong("creation_timestamp"); |
|
|
|
|
String schSrc = obj.getJSONObject("body").optString("schedule_source"); |
|
|
|
|
String tuid; |
|
|
|
|
if("C".equals(schSrc)) { |
|
|
|
|
tuid = trainUid + tdf.format(startDate) + tdf.format(endDate) + "0"; |
|
|
|
|
}else { |
|
|
|
|
tuid = trainUid + tdf.format(startDate) + tdf.format(endDate) + "V"; |
|
|
|
|
String suid; |
|
|
|
|
pstmtQsid.setString(1, trainUid); |
|
|
|
|
pstmtQsid.setDate(2, new java.sql.Date(opDate.getTime())); |
|
|
|
|
pstmtQsid.setDate(3, new java.sql.Date(opDate.getTime())); |
|
|
|
|
try(ResultSet rs = pstmtQsid.executeQuery()){ |
|
|
|
|
if(rs.next()) { |
|
|
|
|
suid = rs.getString(1); |
|
|
|
|
}else { |
|
|
|
|
suid = trainUid + tdf.format(startDate) + tdf.format(endDate) + "V"; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// log.debug("[TA] {}({}) TSC:{}", trainId, tuid, serviceCode);
|
|
|
|
|
log.debug("[TA] {}({}) TSC:{}", trainId, suid, serviceCode); |
|
|
|
|
pstmtTA.setString(1, trainId); |
|
|
|
|
pstmtTA.setString(2, tuid); |
|
|
|
|
pstmtTA.setString(2, suid); |
|
|
|
|
pstmtTA.setDate(3, new java.sql.Date(opDate.getTime())); |
|
|
|
|
pstmtTA.setString(4, serviceCode); |
|
|
|
|
pstmtTA.setTimestamp(5, new Timestamp(activationTime)); |
|
|
|
|
@ -145,7 +153,7 @@ public class TrainMovementProcessor extends Thread{
|
|
|
|
|
int batchSize = 0; |
|
|
|
|
try( |
|
|
|
|
Connection conn = DatabaseManager.getInstance().getConnection(); |
|
|
|
|
PreparedStatement pstmtTC = conn.prepareStatement("REPLACE train_cancellation VALUES (?,?,?,?,?,?,?)"); |
|
|
|
|
PreparedStatement pstmtTC = conn.prepareStatement("REPLACE current_train_cancellation VALUES (?,?,?,?,?,?,?)"); |
|
|
|
|
PreparedStatement pstmtUTA = conn.prepareStatement("UPDATE current_train SET `status` = ? WHERE train_id = ?"); |
|
|
|
|
){ |
|
|
|
|
pstmtUTA.setString(1, CurrentTrainStatus.CANCELLED.getCode()); |
|
|
|
|
@ -274,7 +282,7 @@ public class TrainMovementProcessor extends Thread{
|
|
|
|
|
log.error(e.getMessage(), e); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}//TM
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|