GetStationExport.java
package com.workbenchclassic;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.json.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.JsonProcessingException;
@Path("/getStationExport")
public class GetStationExport {
private static final DBService DB_SERVICE = new DBService("dsMesMiiNJTA");
private static final ObjectMapper MAPPER = new ObjectMapper();
/**
* Fetches station data via dbConnectAndGetRows and returns as a flat JSON
* structure for Excel import.
*
* @return JAX-RS Response with JSON array
*/
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response getStationsFlat(String jsonBody) {
JSONObject json = new JSONObject(jsonBody);
String station = json.getString("station");
String query = "SELECT mk.kap_nr, kap_bez, "
+ "mg.ma_grp_nr, mg.ma_grp_bez, "
+ "li.line_nr, li.line_bez "
+ "FROM bde.kast mk "
+ "JOIN bde.ma_grp mg ON (mg.ma_grp_id = mk.ma_grp_id) "
+ "JOIN bde.line_ma_grp lm ON (lm.ma_grp_id = mk.ma_grp_id) "
+ "JOIN bde.line li ON (li.line_id = lm.line_id) "
+ "JOIN bde.werk we ON (li.werk_id = we.werk_id) "
+ "WHERE Line_typ ='T' "
+ "and mk.werk_id IN (SELECT werk_id FROM bde.kast WHERE kap_nr = ? )";
List<Map<String, Object>> rows;
try (Connection conn = DB_SERVICE.getConnection();
PreparedStatement ps = conn.prepareStatement(query)) {
ps.setString(1, station);
rows = DB_SERVICE.preparedDbConnectAndGetRows(ps);
return Response.ok(MAPPER.writeValueAsString(rows)).build();
} catch (SQLException e) {
String errJson = String.format("{\"error\":\"DB error: %s\"}", e.getMessage());
return Response.status(Response.Status.INTERNAL_SERVER_ERROR)
.entity(errJson)
.build();
} catch (JsonProcessingException e) {
String errJson = String.format("{\"error\":\"JSON processing error: %s\"}", e.getMessage());
return Response.status(Response.Status.INTERNAL_SERVER_ERROR)
.entity(errJson)
.build();
}
}
}