private void addNewPropertiesForExistingProcesses(Session session, int pId, ProductionData pd) throws HibernateException, SQLException,
ConfigurationException {
// Prozess holen
Prozess p = null;
Criteria crit = session.createCriteria(Prozess.class).add(Restrictions.eq("id", pId));
if (crit.list().size() > 0) {
p = (Prozess) crit.list().get(0);
}
if (p == null)
return;
/*******************************************
* properties and attributes for processes *
******************************************/
generateProzessProperty(session, p, "ImportMarker", "merged", PropertyType.String, 0, false);
// AutorTitelSchluessel
generateProzessProperty(session, p, "ATS", pd.getWERKATS(), PropertyType.String, 0, false);
// Auftragsnummer
generateProzessProperty(session, p, "Auftragsnummer", pd.getAUFTRAGSNUMMER(), PropertyType.String, 0, false);
// BEMERKUNG
generateProzessProperty(session, p, "Bemerkung", pd.getBEMERKUNG(), PropertyType.String, 0, false);
// KOMMENTAR
generateProzessProperty(session, p, "Kommentar", pd.getKOMMENTAR(), PropertyType.String, 0, false);
// FEHLERKOMMENTAR
generateProzessProperty(session, p, "Fehlerkommentar", pd.getFEHLERKOMMENTAR(), PropertyType.String, 0, false);
// AUFTRAGGEBER
generateProzessProperty(session, p, "Auftraggeber", String.valueOf(pd.getAUFTRAGGEBER()), PropertyType.Integer, 0, false);
// BEMERKUNG2
// TODO Name
generateProzessProperty(session, p, "Bemerkung2", String.valueOf(pd.getBEMERKUNG2()), PropertyType.Integer, 0, false);
// XSLSHEET
// TODO Name
generateProzessProperty(session, p, "XslSheet", String.valueOf(pd.getXSLSHEET()), PropertyType.Integer, 0, false);
/********************************************
* DigiWunschbuch Sponsor *
*******************************************/
List<Prozesseigenschaft> eig = p.getEigenschaftenList();
if (p.getProjekt().getTitel().equals("DigiWunschBuch")) {
boolean sponsor = false;
if (eig != null) {
for (Prozesseigenschaft pe : eig) {
if (pe.getTitel().contains("Besteller") && (pe.getWert() != null)) {
sponsor = true;
}
}
}
if (!sponsor) {
// SponsorNaming
generateProzessProperty(session, p, "Patennennung", String.valueOf(pd.getPatennennung()), PropertyType.Integer, 0, false);
// Patenname
generateProzessProperty(session, p, "Patenname", pd.getPatenname(), PropertyType.String, 0, false);
// StempelGesetzt
generateProzessProperty(session, p, "Stempel gesetzt", String.valueOf(pd.getStempelGesetzt()), PropertyType.Integer, 0, false);
// xmlTag
generateProzessProperty(session, p, "xml-Tag", String.valueOf(pd.getXmlTag()), PropertyType.Integer, 0, false);
// otrsID
generateProzessProperty(session, p, "OTRS-ID", pd.getOtrsID(), PropertyType.String, 0, false);
// versandErfolgt
generateProzessProperty(session, p, "Versand", String.valueOf(pd.getVersandErfolgt()), PropertyType.Integer, 0, false);
// pdfErstellt
generateProzessProperty(session, p, "PDF erstellt", String.valueOf(pd.getPdfErstellt()), PropertyType.Integer, 0, false);
}
}
List<Werkstueck> wl = p.getWerkstueckeList();
boolean ppndigital = false;
boolean ppnconflict = false;
for (Werkstueck w : wl) {
List<Werkstueckeigenschaft> wel = w.getEigenschaftenList();
String ppn = pd.getWERKPPNDIGITAL();
if (ppn.startsWith("ppn") || ppn.startsWith("PPN")) {
ppn = ppn.substring(3);
}
for (Werkstueckeigenschaft we : wel) {
if (we.getTitel().contains("PPN digital")) {
if (we.getWert() == null) {
ppndigital = true;
we.setWert(pd.getWERKPPNDIGITAL());
} else if (we.getWert().contains(ppn)) {
ppndigital = true;
} else if (!we.getWert().contains(ppn)) {
ppnconflict = true;
}
}
}
if (!ppndigital && ppnconflict) {
conflicts.add(new ImportConflicts(String.valueOf(w.getId()), "PPN digital f-Satz", "", pd.getWERKPPNDIGITAL()));
}
}
if (!ppndigital) {
Werkstueck newWerk = new Werkstueck();
newWerk.setProzess(p);
session.save(newWerk);
// PPN digital f-Satz
newWerk.setProzess(p);
generateWerkProperty(session, newWerk, "PPN digital f-Satz", pd.getWERKPPNDIGITAL(), PropertyType.String, 0, false);
}
ppnconflict = false;
boolean signatur = false;
boolean ppnanalog = false;
boolean sigconflict = false;
Vorlage newVorlage = new Vorlage();
newVorlage.setProzess(p);
String ppn = pd.getWERKPPNANALOG();
if (ppn != null) {
if (ppn.startsWith("ppn") || ppn.startsWith("PPN")) {
ppn = ppn.substring(3);
}
for (Vorlage v : p.getVorlagenList()) {
for (Vorlageeigenschaft ve : v.getEigenschaftenList()) {
if (pd.getWERKSIGNATUR() != null) {
if (ve.getTitel().contains("Signatur")) {
newVorlage = v;
if (ve.getWert() == null) {
signatur = true;
ve.setWert(pd.getWERKSIGNATUR());
} else if (ve.getWert().contains(pd.getWERKSIGNATUR())) {
signatur = true;
} else {
sigconflict = true;
}
}
}
if (ve.getTitel().contains("PPN analog")) {
newVorlage = v;
if (ve.getWert() == null) {
ppnanalog = true;
ve.setWert(pd.getWERKPPNANALOG());
} else if (ve.getWert().contains(ppn)) {
ppnanalog = true;
} else {
ppnconflict = true;
}
}
}
if (!ppnanalog && ppnconflict) {
conflicts.add(new ImportConflicts(String.valueOf(v.getId()), "PPN analog", "", ppn + " or " + "PPN" + ppn));
}
if (!signatur && sigconflict) {
conflicts.add(new ImportConflicts(String.valueOf(v.getId()), "Signatur", "", pd.getWERKSIGNATUR()));
}
}
if (newVorlage.getId() == null) {
session.save(newVorlage);
}
if (!signatur) {
// WERKSIGNATUR
generateVorlageProperty(session, newVorlage, "Signatur", pd.getWERKSIGNATUR(), PropertyType.String, 0, false);
}
if (!ppnanalog) {
generateVorlageProperty(session, newVorlage, "PPN analog f-Satz", pd.getWERKPPNANALOG(), PropertyType.String, 0, false);
}
}
List<Schritt> stepList = p.getSchritteList();
for (Schritt s : stepList) {
/********************************************
* step 'scannen' *
* TODO einzelne farbformate
*******************************************/
if (s.getTitel().contains("scan") || s.getTitel().contains("Scan")) {
boolean pages = false;
boolean scangeraet = false;
for (Schritteigenschaft se : s.getEigenschaftenList()) {
if (se.getTitel().contains("Anzahl der Images") || se.getTitel().contains("Anzahl der Seiten")
|| se.getTitel().contains("Seitenzahl")) {
if (!se.getWert().equals(pd.getWERKSCANSEITEN())) {
conflicts.add(new ImportConflicts(String.valueOf(s.getId()), "Seitenzahl", se.getWert(), String.valueOf(pd
.getWERKSCANSEITEN())));
}
pages = true;
} else if (se.getTitel().contains("Scangerät")) {
if (se.getWert().equals(String.valueOf(pd.getSCANNERTYP()))) {
scangeraet = true;
} else {
conflicts.add(new ImportConflicts(String.valueOf(s.getId()), "Scangerät", se.getWert(), pd.getSCANNERTYP()));
scangeraet = true;
}
}
}
if (!pages) {
// WERKSCANSEITEN
generateStepProperty(session, s, "Seitenanzahl", String.valueOf(pd.getWERKSCANSEITEN()), PropertyType.Integer, 0, false);
}
if (!scangeraet) {
// SCANNERTYP
generateStepProperty(session, s, "Scangerät", pd.getSCANNERTYP(), PropertyType.String, 0, false);
}
// DRUCKQUALITAET
generateStepProperty(session, s, "Druckqualität", String.valueOf(pd.getDRUCKQUALITAET()), PropertyType.Integer, 0, false);
}
/********************************************
* step 'Qualitätskontrolle' *
*******************************************/
else if (s.getTitel().contains("Qualitätskontrolle")) {
if (s.getBearbeitungsende() == null) {
s.setBearbeitungsende(pd.getWERKQKONTROLLDATUM());
}
/********************************************
* step 'Imagenachbearbeitung' *
*******************************************/
} else if (s.getTitel().contains("Imagenachbearbeitung")) {
generateStepProperty(session, s, "BitonalImageNachbearbeitung", pd.getBITONALIMAGENACHBEARBEITUNG(), PropertyType.String, 0, false);
// GRAUIMAGENACHBEARBEITUNG
generateStepProperty(session, s, "GrauImageNachbearbeitung", pd.getGRAUIMAGENACHBEARBEITUNG(), PropertyType.String, 0, false);
// FARBEIMAGENACHBEARBEITUNG
generateStepProperty(session, s, "FarbeImageNachbearbeitung", pd.getFARBEIMAGENACHBEARBEITUNG(), PropertyType.String, 0, false);
// FARBGRAUABB
generateStepProperty(session, s, "FarbgrauABB", String.valueOf(pd.getFARBGRAUABB()), PropertyType.Integer, 0, false);
// ImageNachbearbBitonalDatum
generateStepProperty(session, s, "DatumBitonalImageNachbearbeitung", String.valueOf(pd.getImageNachbearbBitonalDatum()), PropertyType.Date,
0, false);
// ImageNachbearbBitonalPerson
// generateStepProperty(session, s, "PersonBitonalImageCorrection", pd.getImageNachbearbBitonalPerson(), PropertyType.String, 0, false);
// ImageNachbearbGrauDatum
generateStepProperty(session, s, "DatumGrauImageNachbearbeitung", String.valueOf(pd.getImageNachbearbGrauDatum()), PropertyType.Date,
0, false);
// ImageNachbearbGrauPerson
// generateStepProperty(session, s, "PersonGrayscaleImageCorrection", pd.getImageNachbearbGrauPerson(), PropertyType.String, 0, false);
// ImageNachbearbFarbeDatum
generateStepProperty(session, s, "DatumFarbeImageNachbearbeitung", String.valueOf(pd.getImageNachbearbFarbeDatum()), PropertyType.Date, 0,
false);
// ImageNachbearbFarbePerson
// generateStepProperty(session, s, "PersonColorImageCorrection", pd.getImageNachbearbFarbePerson(), PropertyType.String, 0, false);
/********************************************
* step 'Archiv' *
*******************************************/
} else if (s.getTitel().contains("Archivierung")) {
generateStepProperty(session, s, "CD-Sicherung-BK", pd.getCDSICHERUNG(), PropertyType.String, 0, false);
// MAARCHIV
generateStepProperty(session, s, "MA-ArchivNr", pd.getMAARCHIV(), PropertyType.String, 0, false);
}
}
// History Events
for (Schritt s : stepList) {
if (s.getTitel().equals("Bibliographische Aufnahme")) {
p.getHistory().add(new HistoryEvent(pd.getDATUMAUFNAHMEWERK(), s.getReihenfolge(), s.getTitel(), HistoryEventType.stepDone, p));
} else if (s.getTitel().equals("scannen")) {
p.getHistory().add(new HistoryEvent(pd.getWERKSCANDATUM(), pd.getWERKSCANSEITEN(), null, HistoryEventType.imagesMasterDiff, p));
p.getHistory().add(new HistoryEvent(pd.getWERKSCANDATUM(), s.getReihenfolge(), s.getTitel(), HistoryEventType.stepDone, p));
p.getHistory().add(new HistoryEvent(pd.getDATUMAUFNAHMEWERK(), s.getReihenfolge(), s.getTitel(), HistoryEventType.stepOpen, p));
} else if (s.getTitel().equals("Qualitaetskontrolle")) {
p.getHistory().add(new HistoryEvent(pd.getWERKQKONTROLLDATUM(), pd.getWERKSCANSEITEN(), null, HistoryEventType.imagesWorkDiff, p));
p.getHistory().add(new HistoryEvent(pd.getWERKQKONTROLLDATUM(), s.getReihenfolge(), s.getTitel(), HistoryEventType.stepDone, p));
p.getHistory().add(new HistoryEvent(pd.getWERKSCANDATUM(), s.getReihenfolge(), s.getTitel(), HistoryEventType.stepOpen, p));
} else if (s.getTitel().equals("Imagenachbearbeitung")) {
p.getHistory().add(
new HistoryEvent(pd.getImageNachbearbBitonalDatum(), s.getReihenfolge(), s.getTitel(), HistoryEventType.stepDone, p));
p.getHistory().add(new HistoryEvent(pd.getWERKQKONTROLLDATUM(), s.getReihenfolge(), s.getTitel(), HistoryEventType.stepOpen, p));
try {
p.getHistory().add(
new HistoryEvent(pd.getImageNachbearbBitonalDatum(), new Integer(pd.getBITONALIMAGENACHBEARBEITUNG()), null,
HistoryEventType.bitonal, p));
p.getHistory().add(
new HistoryEvent(pd.getImageNachbearbBitonalDatum(), new Integer(pd.getGRAUIMAGENACHBEARBEITUNG()), null,
HistoryEventType.grayScale, p));
p.getHistory().add(
new HistoryEvent(pd.getImageNachbearbBitonalDatum(), new Integer(pd.getFARBEIMAGENACHBEARBEITUNG()), null,
HistoryEventType.color, p));
} catch (NumberFormatException e) {