1 package user.jobengine.server.steps;
\r
3 import java.sql.Connection;
\r
4 import java.sql.DriverManager;
\r
5 import java.sql.PreparedStatement;
\r
6 import java.sql.ResultSet;
\r
7 import java.util.ArrayList;
\r
8 import java.util.List;
\r
10 import org.apache.commons.lang.StringUtils;
\r
11 import org.apache.logging.log4j.LogManager;
\r
12 import org.apache.logging.log4j.Logger;
\r
14 import user.jobengine.db.IItemManager;
\r
15 import user.jobengine.db.Media;
\r
16 import user.jobengine.db.MediaFile;
\r
17 import user.jobengine.db.MediaFileDAO;
\r
18 import user.jobengine.server.IJobEngine;
\r
19 import user.jobengine.server.IJobRuntime;
\r
21 public class CheckTrafficMissingMaterialsStep extends JobStep {
\r
22 private static final Logger logger = LogManager.getLogger();
\r
23 private static final String SQLSERVER_JDBC_SQL_SERVER_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
\r
24 private static final String TRAFFIC_DB_PASSWORD = "traffic.db.password";
\r
25 private static final String TRAFFIC_DB_USER = "traffic.db.user";
\r
26 private static final String TRAFFIC_DB_URL = "traffic.db.url";
\r
27 private static final String SQL = "{call clIFsp_EC_MAM(1001, 40, Null, Null, ?)}";
\r
28 private IItemManager manager;
\r
31 public Object[] execute(IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {
\r
32 List<Media> result = new ArrayList<>();
\r
33 manager = jobEngine.getItemManager();
\r
34 try (Connection con = getSQLConnection(); PreparedStatement stmt = con.prepareStatement(SQL)) {
\r
36 try (ResultSet rs = stmt.executeQuery()) {
\r
38 String trafficId = rs.getString(5);
\r
39 if (StringUtils.isNotBlank(trafficId)) {
\r
41 processTrafficId(result, trafficId);
\r
42 } catch (Exception e) {
\r
43 logger.error(getMarker(), "Hiba lépett fel az {} anyag visszatöltéskor. A rendszer hibaüzenete: {}", trafficId, e.getMessage());
\r
49 } catch (Exception e) {
\r
54 return new Object[] {};
\r
57 private Connection getSQLConnection() throws Exception {
\r
58 Connection result = null;
\r
59 Class.forName(SQLSERVER_JDBC_SQL_SERVER_DRIVER);
\r
60 String url = System.getProperty(TRAFFIC_DB_URL);
\r
61 String user = System.getProperty(TRAFFIC_DB_USER);
\r
62 String pass = System.getProperty(TRAFFIC_DB_PASSWORD);
\r
63 result = DriverManager.getConnection(url, user, pass);
\r
67 private void processTrafficId(List<Media> result, String trafficId) throws Exception {
\r
68 MediaFileDAO dao = (MediaFileDAO) manager.getBaseDAO(MediaFile.class);
\r
69 List<Media> medias = dao.getByHouseId(trafficId);
\r
70 if (medias.size() == 0) {
\r
71 logger.error(getMarker(), "Az {} anyag nem található az archívumban.", trafficId);
\r
75 if (medias.size() > 0) {
\r
76 logger.error(getMarker(), "Az {} anyagból egynél több található az archívumban.", trafficId);
\r
80 result.add(medias.get(0));
\r