backend/src/main/java/com/workbenchclassic/UpdateContact.java aktualisiert
This commit is contained in:
parent
4a8a052619
commit
89a652cdfc
@ -1,188 +1,188 @@
|
||||
package com.workbenchclassic;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
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;
|
||||
|
||||
@Path("/updateContacts")
|
||||
public class UpdateContact {
|
||||
|
||||
private final DBService dbService = new DBService("dsTranNJTA");
|
||||
|
||||
@POST
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public Response doUpdate(String jsonBody) {
|
||||
try {
|
||||
JSONObject json = new JSONObject(jsonBody);
|
||||
String station = json.getString("station");
|
||||
JSONArray dataArray = json.getJSONArray("data");
|
||||
|
||||
String vendor = dbService.getDatabaseProductName();
|
||||
System.out.println("Aktueller DB-Vendor: " + vendor);
|
||||
|
||||
Connection conn = dbService.getConnection();
|
||||
GetMetadata metadata = new GetMetadata();
|
||||
String extPlantResponseString = metadata.getExtPlantJson(station);
|
||||
JSONObject extPlantResponse = new JSONObject(extPlantResponseString);
|
||||
|
||||
String errorCode = extPlantResponse.optString("errorCode", "0");
|
||||
if (!"0".equals(errorCode)) {
|
||||
// Return an HTTP 400 or 500 with that JSON
|
||||
return Response.status(Response.Status.BAD_REQUEST).entity(extPlantResponse.toString()).build();
|
||||
}
|
||||
// 3) werknummer ermitteln
|
||||
|
||||
// werkResultJson könnte z.B. so aussehen:
|
||||
// {"errorCode":"0","errorMessage":"Done","data":"[{\"werknummer\":\"ABC\"}]"}
|
||||
|
||||
String werkData = extPlantResponse.optString("data", "[]");
|
||||
JSONArray werkArr = new JSONArray(werkData);
|
||||
|
||||
String WERK_NR = null;
|
||||
String COMPANY_NO = null;
|
||||
String CLIENT_NO = null;
|
||||
if (werkArr.length() > 0) {
|
||||
JSONObject row = werkArr.getJSONObject(0);
|
||||
WERK_NR = row.optString("ext_company_nr", null);
|
||||
COMPANY_NO = row.optString("werk_nr", null);
|
||||
CLIENT_NO = row.optString("client_nr", null);
|
||||
}
|
||||
|
||||
System.out.println("Ermittelte werknummer: " + COMPANY_NO);
|
||||
|
||||
boolean isMSSQL = "Microsoft SQL Server".equals(vendor);
|
||||
boolean isOracle = "Oracle".equals(vendor);
|
||||
|
||||
insertIdocStatus(conn, isMSSQL, isOracle);
|
||||
|
||||
conn.setAutoCommit(false);
|
||||
try {
|
||||
for (int i = 0; i < dataArray.length(); i++) {
|
||||
JSONObject obj = dataArray.getJSONObject(i);
|
||||
Map<String, String> keyMap = obj.keySet().stream()
|
||||
.collect(Collectors.toMap(String::toLowerCase, key -> key,
|
||||
(existing, replacement) -> existing));
|
||||
insertContact(conn, obj, COMPANY_NO, WERK_NR, CLIENT_NO, isMSSQL, isOracle, keyMap);
|
||||
if (obj.has("artikel") && !obj.isNull("artikel")
|
||||
&& !String.valueOf(obj.get("artikel")).trim().isEmpty()) {
|
||||
insertMaterialContact(conn, obj, COMPANY_NO, WERK_NR, CLIENT_NO, isMSSQL, isOracle, keyMap);
|
||||
}
|
||||
|
||||
}
|
||||
conn.commit();
|
||||
} catch (SQLException e) {
|
||||
conn.rollback();
|
||||
throw e;
|
||||
} finally {
|
||||
conn.setAutoCommit(true);
|
||||
conn.close();
|
||||
}
|
||||
|
||||
JSONObject response = new JSONObject();
|
||||
response.put("status", "ok");
|
||||
response.put("message", "Daten wurden erfolgreich verarbeitet.");
|
||||
return Response.ok(response.toString()).build();
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
JSONObject error = new JSONObject();
|
||||
error.put("status", "error");
|
||||
error.put("message", e.getMessage());
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(error.toString()).build();
|
||||
}
|
||||
}
|
||||
|
||||
private void insertContact(Connection conn, JSONObject obj, String COMPANY_NO, String WERK_NR, String CLIENT_NO,
|
||||
boolean isMSSQL, boolean isOracle, Map<String, String> keyMap) throws SQLException {
|
||||
String sql;
|
||||
if (isMSSQL) {
|
||||
sql = "INSERT INTO xtran.tran_contact (TRAN_ID, IDOC_ID, SOURCE, STATUS, CREATED, STAMP, PLANT_NO, CLIENT_NO, COMPANY_NO, CONTACT_CODE, CONTACT_NAME, CONTACT_GROUP, STREET, ZIP_CODE, COUNTRY, CITY, IS_SUPPLIER, IS_CUSTOMER, IS_MANUFACTURER, CONTACT_CODE_ERP, INVENTORY, CONTACT_STATE, LATITUDE, LONGITUDE) "
|
||||
+ "VALUES (NEXT VALUE FOR xtran.SEQ_tran_contact, (SELECT MAX(id) FROM xtran.tran_idocstatus), ?, ?, GETDATE(), GETDATE(), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
} else if (isOracle) {
|
||||
sql = "INSERT INTO tran.tran_contact (TRAN_ID, IDOC_ID, SOURCE, STATUS, CREATED, STAMP, PLANT_NO, CLIENT_NO, COMPANY_NO, CONTACT_CODE, CONTACT_NAME, CONTACT_GROUP, STREET, ZIP_CODE, COUNTRY, CITY, IS_SUPPLIER, IS_CUSTOMER, IS_MANUFACTURER, CONTACT_CODE_ERP, INVENTORY, CONTACT_STATE, LATITUDE, LONGITUDE) "
|
||||
+ "VALUES (tran.SEQ_TRAN_contact.nextVal, (SELECT MAX(id) FROM tran.tran_idocstatus), ?, ?, SYSDATE, SYSDATE, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
} else {
|
||||
throw new SQLException("DB-Vendor nicht implementiert");
|
||||
}
|
||||
|
||||
try (PreparedStatement ps = conn.prepareStatement(sql)) {
|
||||
ps.setInt(1, obj.optInt(keyMap.getOrDefault("source", "source"), 0));
|
||||
ps.setInt(2, obj.optInt(keyMap.getOrDefault("status", "status"), 0));
|
||||
ps.setString(3, WERK_NR);
|
||||
ps.setString(4, CLIENT_NO);
|
||||
ps.setString(5, COMPANY_NO);
|
||||
ps.setString(6, obj.optString(keyMap.getOrDefault("contact_code", "contact_code"), ""));
|
||||
ps.setString(7, obj.optString(keyMap.getOrDefault("contact_name", "contact_name"), ""));
|
||||
ps.setString(8, obj.optString(keyMap.getOrDefault("contact_group", "contact_group"), ""));
|
||||
ps.setString(9, obj.optString(keyMap.getOrDefault("street", "street"), ""));
|
||||
ps.setString(10, obj.optString(keyMap.getOrDefault("zip_code", "zip_code"), ""));
|
||||
ps.setString(11, obj.optString(keyMap.getOrDefault("country", "country"), ""));
|
||||
ps.setString(12, obj.optString(keyMap.getOrDefault("city", "city"), ""));
|
||||
ps.setInt(13, obj.optInt(keyMap.getOrDefault("is_supplier", "is_supplier"), 0));
|
||||
ps.setInt(14, obj.optInt(keyMap.getOrDefault("is_customer", "is_customer"), 0));
|
||||
ps.setInt(15, obj.optInt(keyMap.getOrDefault("is_manufacturer", "is_manufacturer"), 0));
|
||||
ps.setString(16, obj.optString(keyMap.getOrDefault("contact_code_erp", "contact_code_erp"), ""));
|
||||
ps.setInt(17, obj.optInt(keyMap.getOrDefault("inventory", "inventory"), 0));
|
||||
ps.setInt(18, obj.optInt(keyMap.getOrDefault("contact_state", "contact_state"), 0));
|
||||
ps.setDouble(19, obj.optDouble(keyMap.getOrDefault("latitude", "latitude"), 0.0));
|
||||
ps.setDouble(20, obj.optDouble(keyMap.getOrDefault("longitude", "longitude"), 0.0));
|
||||
ps.executeUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
private void insertIdocStatus(Connection conn, boolean isMSSQL, boolean isOracle) throws SQLException {
|
||||
String sql;
|
||||
if (isMSSQL) {
|
||||
sql = "INSERT INTO xtran.tran_idocstatus (ID, DATE_CREATION, ewstatus, errorcode, content_type, source) VALUES (NEXT VALUE FOR xtran.seq_tranidocstatus, GETDATE(), 1, 0, 57, 0)";
|
||||
} else if (isOracle) {
|
||||
sql = "INSERT INTO tran.tran_idocstatus (ID, DATE_CREATION, ewstatus, errorcode, content_type, source) VALUES (tran.seq_tranidocstatus.nextval, SYSDATE, 1, 0, 57, 0)";
|
||||
} else {
|
||||
throw new SQLException("DB-Vendor nicht implementiert");
|
||||
}
|
||||
try (PreparedStatement ps = conn.prepareStatement(sql)) {
|
||||
ps.executeUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
private void insertMaterialContact(Connection conn, JSONObject obj, String COMPANY_NO, String WERK_NR,
|
||||
String CLIENT_NO, boolean isMSSQL, boolean isOracle, Map<String, String> keyMap) throws SQLException {
|
||||
String sql;
|
||||
if (isMSSQL) {
|
||||
sql = "INSERT INTO xtran.tran_material_contact (TRAN_ID, SOURCE, STATUS, CREATED, STAMP, CONTACT_CODE, MATERIAL_NO, MATERIAL_NO_EXT, MATERIAL_DESC_EXT, CONTACT_TYPE, DELETE_FLAG, PLANT_NO, COMPANY_NO, CLIENT_NO, IDOC_ID) "
|
||||
+ "VALUES (NEXT VALUE FOR xtran.SEQ_tran_material_contact, ?, ?, GETDATE(), GETDATE(), ?, ?, ?, ?, ?, ?, ?, ?, ?, (SELECT MAX(id) FROM xtran.tran_idocstatus))";
|
||||
} else if (isOracle) {
|
||||
sql = "INSERT INTO tran.tran_material_contact (TRAN_ID, SOURCE, STATUS, CREATED, STAMP, CONTACT_CODE, MATERIAL_NO, MATERIAL_NO_EXT, MATERIAL_DESC_EXT, CONTACT_TYPE, DELETE_FLAG, PLANT_NO, COMPANY_NO, CLIENT_NO, IDOC_ID) "
|
||||
+ "VALUES (tran.SEQ_TRAN_material_contact.nextVal, ?, ?, SYSDATE, SYSDATE, ?, ?, ?, ?, ?, ?, ?, ?, ?, (SELECT MAX(id) FROM tran.tran_idocstatus))";
|
||||
} else {
|
||||
throw new SQLException("DB-Vendor nicht implementiert");
|
||||
}
|
||||
|
||||
try (PreparedStatement ps = conn.prepareStatement(sql)) {
|
||||
ps.setInt(1, obj.optInt(keyMap.getOrDefault("source", "source"), 0));
|
||||
ps.setInt(2, obj.optInt(keyMap.getOrDefault("status", "status"), 0));
|
||||
ps.setString(3, obj.optString(keyMap.getOrDefault("contact_code", "contact_code"), ""));
|
||||
ps.setString(4, obj.optString(keyMap.getOrDefault("artikel", "artikel"), ""));
|
||||
ps.setString(5, obj.optString(keyMap.getOrDefault("part_ext", "part_ext"), ""));
|
||||
ps.setString(6, obj.optString(keyMap.getOrDefault("part_ext", "material_desc_ext"), ""));
|
||||
ps.setInt(7, obj.optInt(keyMap.getOrDefault("art_bez_ext", "art_bez_ext"), 0));
|
||||
ps.setInt(8, obj.optInt(keyMap.getOrDefault("delete_flag", "delete_flag"), 0));
|
||||
ps.setString(9, WERK_NR);
|
||||
ps.setString(10, COMPANY_NO);
|
||||
ps.setString(11, CLIENT_NO);
|
||||
ps.executeUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
package com.workbenchclassic;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
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;
|
||||
|
||||
@Path("/updateContacts")
|
||||
public class UpdateContact {
|
||||
|
||||
private final DBService dbService = new DBService("dsTranNJTA");
|
||||
|
||||
@POST
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
public Response doUpdate(String jsonBody) {
|
||||
try {
|
||||
JSONObject json = new JSONObject(jsonBody);
|
||||
String station = json.getString("station");
|
||||
JSONArray dataArray = json.getJSONArray("data");
|
||||
|
||||
String vendor = dbService.getDatabaseProductName();
|
||||
System.out.println("Aktueller DB-Vendor: " + vendor);
|
||||
|
||||
Connection conn = dbService.getConnection();
|
||||
GetMetadata metadata = new GetMetadata();
|
||||
String extPlantResponseString = metadata.getExtPlantJson(station);
|
||||
JSONObject extPlantResponse = new JSONObject(extPlantResponseString);
|
||||
|
||||
String errorCode = extPlantResponse.optString("errorCode", "0");
|
||||
if (!"0".equals(errorCode)) {
|
||||
// Return an HTTP 400 or 500 with that JSON
|
||||
return Response.status(Response.Status.BAD_REQUEST).entity(extPlantResponse.toString()).build();
|
||||
}
|
||||
// 3) werknummer ermitteln
|
||||
|
||||
// werkResultJson könnte z.B. so aussehen:
|
||||
// {"errorCode":"0","errorMessage":"Done","data":"[{\"werknummer\":\"ABC\"}]"}
|
||||
|
||||
String werkData = extPlantResponse.optString("data", "[]");
|
||||
JSONArray werkArr = new JSONArray(werkData);
|
||||
|
||||
String WERK_NR = null;
|
||||
String COMPANY_NO = null;
|
||||
String CLIENT_NO = null;
|
||||
if (werkArr.length() > 0) {
|
||||
JSONObject row = werkArr.getJSONObject(0);
|
||||
WERK_NR = row.optString("werk_nr", null);
|
||||
COMPANY_NO = row.optString("ext_company_nr", null);
|
||||
CLIENT_NO = row.optString("client_nr", null);
|
||||
}
|
||||
|
||||
System.out.println("Ermittelte werknummer: " + COMPANY_NO);
|
||||
|
||||
boolean isMSSQL = "Microsoft SQL Server".equals(vendor);
|
||||
boolean isOracle = "Oracle".equals(vendor);
|
||||
|
||||
insertIdocStatus(conn, isMSSQL, isOracle);
|
||||
|
||||
conn.setAutoCommit(false);
|
||||
try {
|
||||
for (int i = 0; i < dataArray.length(); i++) {
|
||||
JSONObject obj = dataArray.getJSONObject(i);
|
||||
Map<String, String> keyMap = obj.keySet().stream()
|
||||
.collect(Collectors.toMap(String::toLowerCase, key -> key,
|
||||
(existing, replacement) -> existing));
|
||||
insertContact(conn, obj, COMPANY_NO, WERK_NR, CLIENT_NO, isMSSQL, isOracle, keyMap);
|
||||
if (obj.has("artikel") && !obj.isNull("artikel")
|
||||
&& !String.valueOf(obj.get("artikel")).trim().isEmpty()) {
|
||||
insertMaterialContact(conn, obj, COMPANY_NO, WERK_NR, CLIENT_NO, isMSSQL, isOracle, keyMap);
|
||||
}
|
||||
|
||||
}
|
||||
conn.commit();
|
||||
} catch (SQLException e) {
|
||||
conn.rollback();
|
||||
throw e;
|
||||
} finally {
|
||||
conn.setAutoCommit(true);
|
||||
conn.close();
|
||||
}
|
||||
|
||||
JSONObject response = new JSONObject();
|
||||
response.put("status", "ok");
|
||||
response.put("message", "Daten wurden erfolgreich verarbeitet.");
|
||||
return Response.ok(response.toString()).build();
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
JSONObject error = new JSONObject();
|
||||
error.put("status", "error");
|
||||
error.put("message", e.getMessage());
|
||||
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(error.toString()).build();
|
||||
}
|
||||
}
|
||||
|
||||
private void insertContact(Connection conn, JSONObject obj, String COMPANY_NO, String WERK_NR, String CLIENT_NO,
|
||||
boolean isMSSQL, boolean isOracle, Map<String, String> keyMap) throws SQLException {
|
||||
String sql;
|
||||
if (isMSSQL) {
|
||||
sql = "INSERT INTO xtran.tran_contact (TRAN_ID, IDOC_ID, SOURCE, STATUS, CREATED, STAMP, PLANT_NO, CLIENT_NO, COMPANY_NO, CONTACT_CODE, CONTACT_NAME, CONTACT_GROUP, STREET, ZIP_CODE, COUNTRY, CITY, IS_SUPPLIER, IS_CUSTOMER, IS_MANUFACTURER, CONTACT_CODE_ERP, INVENTORY, CONTACT_STATE, LATITUDE, LONGITUDE) "
|
||||
+ "VALUES (NEXT VALUE FOR xtran.SEQ_tran_contact, (SELECT MAX(id) FROM xtran.tran_idocstatus), ?, ?, GETDATE(), GETDATE(), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
} else if (isOracle) {
|
||||
sql = "INSERT INTO tran.tran_contact (TRAN_ID, IDOC_ID, SOURCE, STATUS, CREATED, STAMP, PLANT_NO, CLIENT_NO, COMPANY_NO, CONTACT_CODE, CONTACT_NAME, CONTACT_GROUP, STREET, ZIP_CODE, COUNTRY, CITY, IS_SUPPLIER, IS_CUSTOMER, IS_MANUFACTURER, CONTACT_CODE_ERP, INVENTORY, CONTACT_STATE, LATITUDE, LONGITUDE) "
|
||||
+ "VALUES (tran.SEQ_TRAN_contact.nextVal, (SELECT MAX(id) FROM tran.tran_idocstatus), ?, ?, SYSDATE, SYSDATE, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||
} else {
|
||||
throw new SQLException("DB-Vendor nicht implementiert");
|
||||
}
|
||||
|
||||
try (PreparedStatement ps = conn.prepareStatement(sql)) {
|
||||
ps.setInt(1, obj.optInt(keyMap.getOrDefault("source", "source"), 0));
|
||||
ps.setInt(2, obj.optInt(keyMap.getOrDefault("status", "status"), 0));
|
||||
ps.setString(3, WERK_NR);
|
||||
ps.setString(4, CLIENT_NO);
|
||||
ps.setString(5, COMPANY_NO);
|
||||
ps.setString(6, obj.optString(keyMap.getOrDefault("contact_code", "contact_code"), ""));
|
||||
ps.setString(7, obj.optString(keyMap.getOrDefault("contact_name", "contact_name"), ""));
|
||||
ps.setString(8, obj.optString(keyMap.getOrDefault("contact_group", "contact_group"), ""));
|
||||
ps.setString(9, obj.optString(keyMap.getOrDefault("street", "street"), ""));
|
||||
ps.setString(10, obj.optString(keyMap.getOrDefault("zip_code", "zip_code"), ""));
|
||||
ps.setString(11, obj.optString(keyMap.getOrDefault("country", "country"), ""));
|
||||
ps.setString(12, obj.optString(keyMap.getOrDefault("city", "city"), ""));
|
||||
ps.setInt(13, obj.optInt(keyMap.getOrDefault("is_supplier", "is_supplier"), 0));
|
||||
ps.setInt(14, obj.optInt(keyMap.getOrDefault("is_customer", "is_customer"), 0));
|
||||
ps.setInt(15, obj.optInt(keyMap.getOrDefault("is_manufacturer", "is_manufacturer"), 0));
|
||||
ps.setString(16, obj.optString(keyMap.getOrDefault("contact_code_erp", "contact_code_erp"), ""));
|
||||
ps.setInt(17, obj.optInt(keyMap.getOrDefault("inventory", "inventory"), 0));
|
||||
ps.setInt(18, obj.optInt(keyMap.getOrDefault("contact_state", "contact_state"), 0));
|
||||
ps.setDouble(19, obj.optDouble(keyMap.getOrDefault("latitude", "latitude"), 0.0));
|
||||
ps.setDouble(20, obj.optDouble(keyMap.getOrDefault("longitude", "longitude"), 0.0));
|
||||
ps.executeUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
private void insertIdocStatus(Connection conn, boolean isMSSQL, boolean isOracle) throws SQLException {
|
||||
String sql;
|
||||
if (isMSSQL) {
|
||||
sql = "INSERT INTO xtran.tran_idocstatus (ID, DATE_CREATION, ewstatus, errorcode, content_type, source) VALUES (NEXT VALUE FOR xtran.seq_tranidocstatus, GETDATE(), 1, 0, 57, 0)";
|
||||
} else if (isOracle) {
|
||||
sql = "INSERT INTO tran.tran_idocstatus (ID, DATE_CREATION, ewstatus, errorcode, content_type, source) VALUES (tran.seq_tranidocstatus.nextval, SYSDATE, 1, 0, 57, 0)";
|
||||
} else {
|
||||
throw new SQLException("DB-Vendor nicht implementiert");
|
||||
}
|
||||
try (PreparedStatement ps = conn.prepareStatement(sql)) {
|
||||
ps.executeUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
private void insertMaterialContact(Connection conn, JSONObject obj, String COMPANY_NO, String WERK_NR,
|
||||
String CLIENT_NO, boolean isMSSQL, boolean isOracle, Map<String, String> keyMap) throws SQLException {
|
||||
String sql;
|
||||
if (isMSSQL) {
|
||||
sql = "INSERT INTO xtran.tran_material_contact (TRAN_ID, SOURCE, STATUS, CREATED, STAMP, CONTACT_CODE, MATERIAL_NO, MATERIAL_NO_EXT, MATERIAL_DESC_EXT, CONTACT_TYPE, DELETE_FLAG, PLANT_NO, COMPANY_NO, CLIENT_NO, IDOC_ID) "
|
||||
+ "VALUES (NEXT VALUE FOR xtran.SEQ_tran_material_contact, ?, ?, GETDATE(), GETDATE(), ?, ?, ?, ?, ?, ?, ?, ?, ?, (SELECT MAX(id) FROM xtran.tran_idocstatus))";
|
||||
} else if (isOracle) {
|
||||
sql = "INSERT INTO tran.tran_material_contact (TRAN_ID, SOURCE, STATUS, CREATED, STAMP, CONTACT_CODE, MATERIAL_NO, MATERIAL_NO_EXT, MATERIAL_DESC_EXT, CONTACT_TYPE, DELETE_FLAG, PLANT_NO, COMPANY_NO, CLIENT_NO, IDOC_ID) "
|
||||
+ "VALUES (tran.SEQ_TRAN_material_contact.nextVal, ?, ?, SYSDATE, SYSDATE, ?, ?, ?, ?, ?, ?, ?, ?, ?, (SELECT MAX(id) FROM tran.tran_idocstatus))";
|
||||
} else {
|
||||
throw new SQLException("DB-Vendor nicht implementiert");
|
||||
}
|
||||
|
||||
try (PreparedStatement ps = conn.prepareStatement(sql)) {
|
||||
ps.setInt(1, obj.optInt(keyMap.getOrDefault("source", "source"), 0));
|
||||
ps.setInt(2, obj.optInt(keyMap.getOrDefault("status", "status"), 0));
|
||||
ps.setString(3, obj.optString(keyMap.getOrDefault("contact_code", "contact_code"), ""));
|
||||
ps.setString(4, obj.optString(keyMap.getOrDefault("artikel", "artikel"), ""));
|
||||
ps.setString(5, obj.optString(keyMap.getOrDefault("part_ext", "part_ext"), ""));
|
||||
ps.setString(6, obj.optString(keyMap.getOrDefault("part_ext", "material_desc_ext"), ""));
|
||||
ps.setInt(7, obj.optInt(keyMap.getOrDefault("art_bez_ext", "art_bez_ext"), 0));
|
||||
ps.setInt(8, obj.optInt(keyMap.getOrDefault("delete_flag", "delete_flag"), 0));
|
||||
ps.setString(9, WERK_NR);
|
||||
ps.setString(10, COMPANY_NO);
|
||||
ps.setString(11, CLIENT_NO);
|
||||
ps.executeUpdate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user