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.List;
\r
9 import org.apache.commons.lang.StringUtils;
\r
10 import org.apache.logging.log4j.LogManager;
\r
11 import org.apache.logging.log4j.Logger;
\r
13 import user.commons.IEntityBase;
\r
14 import user.commons.ListUtils;
\r
15 import user.jobengine.db.IItemManager;
\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 String KILLDATEDAYS = "killDateDays";
\r
23 private static final Logger logger = LogManager.getLogger();
\r
24 private static final String TARGET_NAME_PATTERN = "targetNamePattern";
\r
25 private static final String TARGET_PATH = "targetPath";
\r
26 private static final String MEDIA_CUBE_MEDIA = "mediaCubeMedia";
\r
27 private static final String SQLSERVER_JDBC_SQL_SERVER_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
\r
28 private static final String SQL = "{call dbo.clIFsp_EC_MAM(1001, 32, Null, Null, ?)}";
\r
29 private static final String JOBTEMPLATE = "retrieve-material.xml";
\r
30 private static final String SUCCESSRECIPIENT = "successRecipient";
\r
31 private int killDateDays;
\r
34 public Object[] execute(String dbUrl, String userName, String password, int lookupDays, String targetPath,
\r
35 int killDateDays, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception {
\r
37 this.killDateDays = killDateDays;
\r
38 try (Connection con = getConnection(dbUrl, userName, password);
\r
39 PreparedStatement stmt = con.prepareStatement(SQL)) {
\r
40 stmt.setInt(1, lookupDays);
\r
41 try (ResultSet rs = stmt.executeQuery()) {
\r
43 String trafficId = rs.getString(5);
\r
44 if (StringUtils.isBlank(trafficId))
\r
48 processTrafficId(trafficId, targetPath, jobEngine);
\r
49 } catch (Exception e) {
\r
50 logger.error(getMarker(),
\r
51 "Hiba lépett fel az {} anyag visszatöltéskor. A rendszer hibaüzenete: {}", trafficId,
\r
57 } catch (Exception e) {
\r
65 private Connection getConnection(String dbUrl, String userName, String password) throws Exception {
\r
66 Connection result = null;
\r
68 Class.forName(SQLSERVER_JDBC_SQL_SERVER_DRIVER);
\r
69 result = DriverManager.getConnection(dbUrl, userName, password);
\r
70 } catch (Exception e) {
\r
71 logger.error(getMarker(), "Hiba lépett fel a folyamat indításakor. A rendszer hibaüzenete: {}",
\r
78 private void processTrafficId(String trafficId, String targetPath, IJobEngine jobEngine) throws Exception {
\r
79 IItemManager manager = jobEngine.getItemManager();
\r
80 MediaFileDAO dao = (MediaFileDAO) manager.getBaseDAO(MediaFile.class);
\r
81 List<IEntityBase> medias = dao.getByHouseId(trafficId);
\r
82 if (medias == null || medias.size() == 0) {
\r
83 logger.error(getMarker(), "Az {} anyag nem található az archívumban.", trafficId);
\r
87 if (medias.size() > 1) {
\r
88 logger.error(getMarker(), "Az {} anyagból egynél több található az archívumban.", trafficId);
\r
92 String title = "Traffic adásanyag visszatöltés: " + trafficId;
\r
93 jobEngine.submit(JOBTEMPLATE, title, ListUtils.asMap(MEDIA_CUBE_MEDIA, medias.get(0), TARGET_PATH, targetPath, TARGET_NAME_PATTERN, "%s",
\r
94 SUCCESSRECIPIENT, null, KILLDATEDAYS, killDateDays));
\r