List of usage examples for java.lang Double doubleValue
@HotSpotIntrinsicCandidate public double doubleValue()
From source file:com.lp.server.auftrag.ejbfac.AuftragFacBean.java
/** * Hier wird der Auftragsnettowert fuer eine Hibernate Liste von offenen * Auftraegen bestimmt (Status Offen oder Teilerledigt). <br> * Dabei werden alle Auftragswerte in Mandantenwaehrung beruecksichtigt. * //from w w w .j a va 2s. c om * @param listFLRAuftragFuerUebersichtI * Liste von FLRAuftragFuerUebersicht Objekten * @param sessionI * die aktive Hibernate Session * @param theClientDto * der aktuelle Benutzer * @return BigDecimal der offene Auftragsnettowert * @throws Throwable * Ausnahme */ private BigDecimal berechneAuftragsnettowertOffen(List<?> listFLRAuftragFuerUebersichtI, Session sessionI, TheClientDto theClientDto) throws Throwable { BigDecimal nSummeAuftragsnettowert = new BigDecimal(0); if (listFLRAuftragFuerUebersichtI != null) { Iterator<?> it = listFLRAuftragFuerUebersichtI.iterator(); while (it.hasNext()) { BigDecimal nBeitragDiesesAuftrags = new BigDecimal(0); FLRAuftragFuerUebersicht flrauftrag = (FLRAuftragFuerUebersicht) it.next(); // wir befinden uns innerhalb einer Hibernate Session Criteria critAuftragposition = sessionI.createCriteria(FLRAuftragpositionFuerUebersicht.class); critAuftragposition.add( Restrictions.eq(AuftragpositionFac.FLR_AUFTRAGPOSITION_AUFTRAG_I_ID, flrauftrag.getI_id())); critAuftragposition .add(Restrictions.isNotNull(AuftragpositionFac.FLR_AUFTRAGPOSITION_N_OFFENEMENGE)); critAuftragposition.add( Restrictions.gt(AuftragpositionFac.FLR_AUFTRAGPOSITION_N_OFFENEMENGE, new BigDecimal(0))); List<?> listPositionen = critAuftragposition.list(); Iterator<?> it2 = listPositionen.iterator(); while (it2.hasNext()) { FLRAuftragpositionFuerUebersicht flrauftragposition = (FLRAuftragpositionFuerUebersicht) it2 .next(); BigDecimal bdBeitragDieserPosition = flrauftragposition .getN_nettogesamtpreisplusversteckteraufschlagminusrabatte() .multiply(flrauftragposition.getN_offenemenge()); nBeitragDiesesAuftrags = nBeitragDiesesAuftrags.add(bdBeitragDieserPosition); } // Umrechnen des Beitrags in Mandantenwaehrung Double ddWechselkursReziprok = flrauftrag.getF_wechselkursmandantwaehrungzuauftragswaehrung(); if (ddWechselkursReziprok != null && ddWechselkursReziprok.doubleValue() != 1) { ddWechselkursReziprok = new Double(1 / ddWechselkursReziprok.doubleValue()); nBeitragDiesesAuftrags = nBeitragDiesesAuftrags .multiply(new BigDecimal(ddWechselkursReziprok.doubleValue())); } nBeitragDiesesAuftrags = Helper.rundeKaufmaennisch(nBeitragDiesesAuftrags, 4); checkNumberFormat(nBeitragDiesesAuftrags); nSummeAuftragsnettowert = nSummeAuftragsnettowert.add(nBeitragDiesesAuftrags); } } return nSummeAuftragsnettowert; }
From source file:spinworld.gui.RadarPlot.java
/** * Loop through each of the series to get the maximum value * on each category axis./*from w w w. ja va 2 s .c om*/ * * @param seriesCount the number of series * @param catCount the number of categories */ private void ensureBoundaryValues(int seriesCount, int catCount) { // base origin and maxVaue are used if (origin != null && maxValue != null) { return; } for (int catIndex = 0; catIndex < catCount; catIndex++) { Double preferredCatMax = getMaxValue(catIndex); Double preferredCatOrigin = getOrigin(catIndex); if (preferredCatOrigin != null && preferredCatMax != null) { continue; // already set per category } double catDataMaxVal = -Double.MAX_VALUE; double catDataMinVal = Double.MAX_VALUE; boolean hasValues = false; for (int seriesIndex = 0; seriesIndex < seriesCount; seriesIndex++) { Number nV = getPlotValue(seriesIndex, catIndex); if (nV != null) { hasValues = true; double v = nV.doubleValue(); if (v > catDataMaxVal) { catDataMaxVal = v; } if (v < catDataMinVal) { catDataMinVal = v; } } } if (!hasValues) { setMaxValue(catIndex, new Double(0)); setOrigin(catIndex, new Double(0)); continue; } if (preferredCatMax == null) { preferredCatMax = new Double(catDataMaxVal); setMaxValue(catIndex, preferredCatMax); } // Ensure that origin of a spoke does not coincide with a data point with minimum value. // Such data point would lost information to which spoke (axis) it belongs since it // would be in the center of the spider plot, i.e. it would "belong" to all spokes. if (preferredCatOrigin == null) { double catOriginShift; if (catDataMaxVal == catDataMinVal) { if (catDataMinVal == 0) { // all data points at zero catOriginShift = 0.1; } else { // all data points at the same value catOriginShift = Math.abs(catDataMinVal / 10); } } else { // Shift origin about 10% of the data range from minimum. catOriginShift = Math.abs((catDataMaxVal - catDataMinVal) / 10); } preferredCatOrigin = new Double(catDataMinVal - catOriginShift); setOrigin(catIndex, preferredCatOrigin); } double prefOrigin = preferredCatOrigin.doubleValue(); double prefMax = preferredCatMax.doubleValue(); // special case. Min, max and all values are zero. if (prefOrigin == 0 && prefMax == 0) { prefMax = 0.1; setMaxValue(catIndex, new Double(prefMax)); } if (prefOrigin >= prefMax) { setMaxValue(catIndex, new Double(prefOrigin + Math.abs(prefOrigin / 2))); } } }
From source file:org.sakaiproject.tool.assessment.facade.AssessmentGradingFacadeQueries.java
public List getExportResponsesData(String publishedAssessmentId, boolean anonymous, String audioMessage, String fileUploadMessage, String noSubmissionMessage, boolean showPartAndTotalScoreSpreadsheetColumns, String poolString, String partString, String questionString, String textString, String rationaleString, String itemGradingCommentsString, Map useridMap, String responseCommentString) { ArrayList dataList = new ArrayList(); ArrayList headerList = new ArrayList(); ArrayList finalList = new ArrayList(2); PublishedAssessmentService pubService = new PublishedAssessmentService(); HashSet publishedAssessmentSections = pubService .getSectionSetForAssessment(Long.valueOf(publishedAssessmentId)); Double zeroDouble = new Double(0.0); HashMap publishedAnswerHash = pubService .preparePublishedAnswerHash(pubService.getPublishedAssessment(publishedAssessmentId)); HashMap publishedItemTextHash = pubService .preparePublishedItemTextHash(pubService.getPublishedAssessment(publishedAssessmentId)); HashMap publishedItemHash = pubService .preparePublishedItemHash(pubService.getPublishedAssessment(publishedAssessmentId)); //Get this sorted to add the blank gradings for the questions not answered later. Set publishItemSet = new TreeSet(new ItemComparator()); publishItemSet.addAll(publishedItemHash.values()); int numSubmission = 1; String numSubmissionText = noSubmissionMessage; String lastAgentId = ""; String agentEid = ""; String firstName = ""; String lastName = ""; Set useridSet = new HashSet(useridMap.keySet()); ArrayList responseList = null; boolean canBeExported = false; boolean fistItemGradingData = true; List list = getAllOrderedSubmissions(publishedAssessmentId); Iterator assessmentGradingIter = list.iterator(); while (assessmentGradingIter.hasNext()) { // create new section-item-scores structure for this assessmentGrading Iterator sectionsIter = publishedAssessmentSections.iterator(); HashMap sectionItems = new HashMap(); TreeMap sectionScores = new TreeMap(); while (sectionsIter.hasNext()) { PublishedSectionData publishedSection = (PublishedSectionData) sectionsIter.next(); ArrayList itemsArray = publishedSection.getItemArraySortedForGrading(); Iterator itemsIter = itemsArray.iterator(); // Iterate through the assessment questions (items) HashMap itemsForSection = new HashMap(); while (itemsIter.hasNext()) { ItemDataIfc item = (ItemDataIfc) itemsIter.next(); itemsForSection.put(item.getItemId(), item.getItemId()); }/*from ww w. ja v a 2s .c om*/ sectionItems.put(publishedSection.getSequence(), itemsForSection); sectionScores.put(publishedSection.getSequence(), zeroDouble); } AssessmentGradingData assessmentGradingData = (AssessmentGradingData) assessmentGradingIter.next(); String agentId = assessmentGradingData.getAgentId(); responseList = new ArrayList(); canBeExported = false; if (anonymous) { canBeExported = true; responseList.add(assessmentGradingData.getAssessmentGradingId()); } else { if (useridMap.containsKey(assessmentGradingData.getAgentId())) { useridSet.remove(assessmentGradingData.getAgentId()); canBeExported = true; try { agentEid = userDirectoryService.getUser(assessmentGradingData.getAgentId()).getEid(); firstName = userDirectoryService.getUser(assessmentGradingData.getAgentId()).getFirstName(); lastName = userDirectoryService.getUser(assessmentGradingData.getAgentId()).getLastName(); } catch (Exception e) { log.error("Cannot get user"); } responseList.add(lastName); responseList.add(firstName); responseList.add(agentEid); if (assessmentGradingData.getForGrade()) { if (lastAgentId.equals(agentId)) { numSubmission++; } else { numSubmission = 1; lastAgentId = agentId; } } else { numSubmission = 0; lastAgentId = agentId; } if (numSubmission == 0) { numSubmissionText = noSubmissionMessage; } else { numSubmissionText = String.valueOf(numSubmission); } responseList.add(numSubmissionText); } } if (canBeExported) { int sectionScoreColumnStart = responseList.size(); if (showPartAndTotalScoreSpreadsheetColumns) { Double finalScore = assessmentGradingData.getFinalScore(); if (finalScore != null) { responseList.add((Double) finalScore.doubleValue()); // gopal - cast for spreadsheet numerics } else { log.debug("finalScore is NULL"); responseList.add(0d); } } String assessmentGradingComments = ""; if (assessmentGradingData.getComments() != null) { assessmentGradingComments = assessmentGradingData.getComments().replaceAll("<br\\s*/>", ""); } responseList.add(assessmentGradingComments); Long assessmentGradingId = assessmentGradingData.getAssessmentGradingId(); HashMap studentGradingMap = getStudentGradingData( assessmentGradingData.getAssessmentGradingId().toString(), false); ArrayList grades = new ArrayList(); grades.addAll(studentGradingMap.values()); Collections.sort(grades, new QuestionComparator(publishedItemHash)); //Add the blank gradings for the questions not answered in random pools. if (grades.size() < publishItemSet.size()) { int index = -1; for (Object pido : publishItemSet) { index++; PublishedItemData pid = (PublishedItemData) pido; if (index == grades.size() || ((ItemGradingData) ((List) grades.get(index)).get(0)) .getPublishedItemId().longValue() != pid.getItemId().longValue()) { //have to add the placeholder List newList = new ArrayList(); newList.add(new EmptyItemGrading(pid.getSection().getSequence(), pid.getItemId(), pid.getSequence())); grades.add(index, newList); } } } int questionNumber = 0; for (Object oo : grades) { // There can be more than one answer to a question, e.g. for // FIB with more than one blank or matching questions. So sort // by sequence number of answer. (don't bother to sort if just 1) List l = (List) oo; if (l.size() > 1) Collections.sort(l, new AnswerComparator(publishedAnswerHash)); String maintext = ""; String rationale = ""; String responseComment = ""; boolean addRationale = false; boolean addResponseComment = false; boolean matrixChoices = false; TreeMap responsesMap = new TreeMap(); // loop over answers per question int count = 0; ItemGradingData grade = null; //boolean isAudioFileUpload = false; boolean isFinFib = false; double itemScore = 0.0d; //Add the missing sequences! //To manage emi answers, could help with others too Map<Long, String> emiAnswerText = new TreeMap<Long, String>(); for (Object ooo : l) { grade = (ItemGradingData) ooo; if (grade == null || EmptyItemGrading.class.isInstance(grade)) { continue; } if (grade != null && grade.getAutoScore() != null) { itemScore += grade.getAutoScore().doubleValue(); } // now print answer data log.debug("<br> " + grade.getPublishedItemId() + " " + grade.getRationale() + " " + grade.getAnswerText() + " " + grade.getComments() + " " + grade.getReview()); Long publishedItemId = grade.getPublishedItemId(); ItemDataIfc publishedItemData = (ItemDataIfc) publishedItemHash.get(publishedItemId); Long typeId = publishedItemData.getTypeId(); questionNumber = publishedItemData.getSequence(); if (typeId.equals(TypeIfc.FILL_IN_BLANK) || typeId.equals(TypeIfc.FILL_IN_NUMERIC) || typeId.equals(TypeIfc.CALCULATED_QUESTION)) { log.debug("FILL_IN_BLANK, FILL_IN_NUMERIC"); isFinFib = true; String thistext = ""; Long answerid = grade.getPublishedAnswerId(); Long sequence = null; if (answerid != null) { AnswerIfc answer = (AnswerIfc) publishedAnswerHash.get(answerid); if (answer != null) { sequence = answer.getSequence(); } } String temptext = grade.getAnswerText(); if (temptext == null) { temptext = "No Answer"; } thistext = sequence + ": " + temptext; if (count == 0) maintext = thistext; else maintext = maintext + "|" + thistext; count++; } else if (typeId.equals(TypeIfc.MATCHING)) { log.debug("MATCHING"); String thistext = ""; // for some question types we have another text field Long answerid = grade.getPublishedAnswerId(); String temptext = "No Answer"; Long sequence = null; if (answerid != null) { AnswerIfc answer = (AnswerIfc) publishedAnswerHash.get(answerid); if (answer != null) { temptext = answer.getText(); if (temptext == null) { temptext = "No Answer"; } sequence = answer.getItemText().getSequence(); } else if (answerid == -1) { temptext = "None of the Above"; ItemTextIfc itemTextIfc = (ItemTextIfc) publishedItemTextHash .get(grade.getPublishedItemTextId()); sequence = itemTextIfc.getSequence(); } } else { ItemTextIfc itemTextIfc = (ItemTextIfc) publishedItemTextHash .get(grade.getPublishedItemTextId()); sequence = itemTextIfc.getSequence(); } thistext = sequence + ": " + temptext; if (count == 0) maintext = thistext; else maintext = maintext + "|" + thistext; count++; } else if (typeId.equals(TypeIfc.IMAGEMAP_QUESTION)) { log.debug("MATCHING"); ItemTextIfc itemTextIfc = (ItemTextIfc) publishedItemTextHash .get(grade.getPublishedItemTextId()); Long sequence = itemTextIfc.getSequence(); String temptext = (grade.getIsCorrect()) ? "OK" : "No OK"; String thistext = sequence + ": " + temptext; if (count == 0) maintext = thistext; else maintext = maintext + "|" + thistext; count++; } else if (typeId.equals(TypeIfc.IMAGEMAP_QUESTION)) { log.debug("MATCHING"); ItemTextIfc itemTextIfc = (ItemTextIfc) publishedItemTextHash .get(grade.getPublishedItemTextId()); Long sequence = itemTextIfc.getSequence(); String temptext = (grade.getIsCorrect()) ? "OK" : "No OK"; String thistext = sequence + ": " + temptext; if (count == 0) maintext = thistext; else maintext = maintext + "|" + thistext; count++; } else if (typeId.equals(TypeIfc.IMAGEMAP_QUESTION)) { log.debug("MATCHING"); ItemTextIfc itemTextIfc = (ItemTextIfc) publishedItemTextHash .get(grade.getPublishedItemTextId()); Long sequence = itemTextIfc.getSequence(); String temptext = (grade.getIsCorrect()) ? "OK" : "No OK"; String thistext = sequence + ": " + temptext; if (count == 0) maintext = thistext; else maintext = maintext + "|" + thistext; count++; } else if (typeId.equals(TypeIfc.EXTENDED_MATCHING_ITEMS)) { log.debug("EXTENDED_MATCHING_ITEMS"); String thistext = ""; // for some question types we have another text field Long answerid = grade.getPublishedAnswerId(); String temptext = "No Answer"; Long sequence = null; if (answerid != null) { AnswerIfc answer = (AnswerIfc) publishedAnswerHash.get(answerid); if (answer != null) { temptext = answer.getLabel(); if (temptext == null) { temptext = "No Answer"; } sequence = answer.getItemText().getSequence(); } } if (sequence == null) { ItemTextIfc itemTextIfc = (ItemTextIfc) publishedItemTextHash .get(grade.getPublishedItemTextId()); if (itemTextIfc != null) { sequence = itemTextIfc.getSequence(); } } if (sequence != null) { thistext = emiAnswerText.get(sequence); if (thistext == null) { thistext = temptext; } else { thistext = thistext + temptext; } emiAnswerText.put(sequence, thistext); } else { // Orphaned answer: the answer item to which it refers was removed after the assessment was taken, // as a result of editing the published assessment. This behaviour should be fixed, i.e. it should // not be possible to get orphaned answer item references in the database. sequence = new Long(99); emiAnswerText.put(sequence, "Item Removed"); } } else if (typeId.equals(TypeIfc.MATRIX_CHOICES_SURVEY)) { log.debug("MATRIX_CHOICES_SURVEY"); // for this kind of question a responsesMap is generated matrixChoices = true; Long answerid = grade.getPublishedAnswerId(); String temptext = "No Answer"; Long sequence = null; if (answerid != null) { AnswerIfc answer = (AnswerIfc) publishedAnswerHash.get(answerid); temptext = answer.getText(); if (temptext == null) { temptext = "No Answer"; } sequence = answer.getItemText().getSequence(); } else { ItemTextIfc itemTextIfc = (ItemTextIfc) publishedItemTextHash .get(grade.getPublishedItemTextId()); sequence = itemTextIfc.getSequence(); log.debug( "Answerid null for " + grade.getPublishedItemId() + ". Adding " + sequence); temptext = "No Answer"; } responsesMap.put(sequence, temptext); } else if (typeId.equals(TypeIfc.AUDIO_RECORDING)) { log.debug("AUDIO_RECORDING"); maintext = audioMessage; //isAudioFileUpload = true; } else if (typeId.equals(TypeIfc.FILE_UPLOAD)) { log.debug("FILE_UPLOAD"); maintext = fileUploadMessage; //isAudioFileUpload = true; } else if (typeId.equals(TypeIfc.ESSAY_QUESTION)) { log.debug("ESSAY_QUESTION"); if (grade.getAnswerText() != null) { maintext = grade.getAnswerText(); } } else { log.debug("other type"); String thistext = ""; // for some question types we have another text field Long answerid = grade.getPublishedAnswerId(); if (answerid != null) { AnswerIfc answer = (AnswerIfc) publishedAnswerHash.get(answerid); if (answer != null) { String temptext = answer.getText(); if (temptext != null) thistext = temptext; } else { log.warn("Published answer for " + answerid + " is null"); } } if (count == 0) maintext = thistext; else maintext = maintext + "|" + thistext; count++; } // taking care of rationale if (!addRationale && (typeId.equals(TypeIfc.MULTIPLE_CHOICE) || typeId.equals(TypeIfc.MULTIPLE_CORRECT) || typeId.equals(TypeIfc.MULTIPLE_CORRECT_SINGLE_SELECTION) || typeId.equals(TypeIfc.TRUE_FALSE))) { log.debug( "MULTIPLE_CHOICE or MULTIPLE_CORRECT or MULTIPLE_CORRECT_SINGLE_SELECTION or TRUE_FALSE"); if (publishedItemData.getHasRationale() != null && publishedItemData.getHasRationale()) { addRationale = true; rationale = grade.getRationale(); if (rationale == null) { rationale = ""; } } } //Survey - Matrix of Choices - Add Comment Field if (typeId.equals(TypeIfc.MATRIX_CHOICES_SURVEY)) { PublishedItemData pid = (PublishedItemData) publishedItemData; if (pid.getAddCommentFlag()) { addResponseComment = true; if (responseComment.equals("") && grade.getAnswerText() != null) { responseComment = grade.getAnswerText(); } } } } // inner for - answers if (!emiAnswerText.isEmpty()) { if (maintext == null) { maintext = ""; } for (Entry<Long, String> entry : emiAnswerText.entrySet()) { maintext = maintext + "|" + entry.getKey().toString() + ":" + entry.getValue(); } if (maintext.startsWith("|")) { maintext = maintext.substring(1); } } Integer sectionSequenceNumber = null; if (grade == null || EmptyItemGrading.class.isInstance(grade)) { sectionSequenceNumber = EmptyItemGrading.class.cast(grade).getSectionSequence(); questionNumber = EmptyItemGrading.class.cast(grade).getItemSequence(); // indicate that the student was not presented with this question maintext = "-"; } else { sectionSequenceNumber = updateSectionScore(sectionItems, sectionScores, grade.getPublishedItemId(), itemScore); } if (isFinFib && maintext.indexOf("No Answer") >= 0 && count == 1) { maintext = "No Answer"; } else if ("".equals(maintext)) { maintext = "No Answer"; } String itemGradingComments = ""; // if question type is not matrix choices apply the original code if (!matrixChoices) { responseList.add(maintext); if (grade.getComments() != null) { itemGradingComments = grade.getComments().replaceAll("<br\\s*/>", ""); } responseList.add(itemGradingComments); } else { // if there are questions not answered, a no answer response is added to the map ItemDataIfc correspondingPublishedItemData = (ItemDataIfc) publishedItemHash .get(grade.getPublishedItemId()); List correspondingItemTextArray = correspondingPublishedItemData.getItemTextArray(); log.debug("publishedItem is " + correspondingPublishedItemData.getText() + " and number of rows " + correspondingItemTextArray.size()); if (responsesMap.size() < correspondingItemTextArray.size()) { Iterator itItemTextHash = correspondingItemTextArray.iterator(); while (itItemTextHash.hasNext()) { ItemTextIfc itemTextIfc = (ItemTextIfc) itItemTextHash.next(); if (!responsesMap.containsKey(itemTextIfc.getSequence())) { log.debug("responsesMap does not contain answer to " + itemTextIfc.getText()); responsesMap.put(itemTextIfc.getSequence(), "No Answer"); } } } Iterator it = responsesMap.entrySet().iterator(); while (it.hasNext()) { Map.Entry e = (Map.Entry) it.next(); log.debug("Adding to response list " + e.getKey() + " and " + e.getValue()); responseList.add(e.getValue()); if (grade.getComments() != null) { itemGradingComments = grade.getComments().replaceAll("<br\\s*/>", ""); } responseList.add(itemGradingComments); itemGradingComments = ""; } } if (addRationale) { responseList.add(rationale); } if (addResponseComment) { responseList.add(responseComment); } // Only set header based on the first item grading data if (fistItemGradingData) { //get the pool name String poolName = null; for (Iterator i = publishedAssessmentSections.iterator(); i.hasNext();) { PublishedSectionData psd = (PublishedSectionData) i.next(); if (psd.getSequence().intValue() == sectionSequenceNumber) { poolName = psd.getSectionMetaDataByLabel(SectionDataIfc.POOLNAME_FOR_RANDOM_DRAW); } } if (!matrixChoices) { headerList.add(makeHeader(partString, sectionSequenceNumber, questionString, textString, questionNumber, poolString, poolName)); if (addRationale) { headerList.add(makeHeader(partString, sectionSequenceNumber, questionString, rationaleString, questionNumber, poolString, poolName)); } if (addResponseComment) { headerList.add(makeHeader(partString, sectionSequenceNumber, questionString, responseCommentString, questionNumber, poolString, poolName)); } headerList.add(makeHeader(partString, sectionSequenceNumber, questionString, itemGradingCommentsString, questionNumber, poolString, poolName)); } else { int numberRows = responsesMap.size(); for (int i = 0; i < numberRows; i = i + 1) { headerList.add(makeHeaderMatrix(partString, sectionSequenceNumber, questionString, textString, questionNumber, i + 1, poolString, poolName)); if (addRationale) { headerList .add(makeHeaderMatrix(partString, sectionSequenceNumber, questionString, rationaleString, questionNumber, i + 1, poolString, poolName)); } if (addResponseComment) { headerList.add(makeHeaderMatrix(partString, sectionSequenceNumber, questionString, responseCommentString, questionNumber, i + 1, poolString, poolName)); } headerList.add(makeHeaderMatrix(partString, sectionSequenceNumber, questionString, itemGradingCommentsString, questionNumber, i + 1, poolString, poolName)); } } } } // outer for - questions if (showPartAndTotalScoreSpreadsheetColumns) { if (sectionScores.size() > 1) { Iterator keys = sectionScores.keySet().iterator(); while (keys.hasNext()) { Double partScore = (Double) ((Double) sectionScores.get(keys.next())).doubleValue(); responseList.add(sectionScoreColumnStart++, partScore); } } } dataList.add(responseList); if (fistItemGradingData) { fistItemGradingData = false; } } } // while if (!anonymous && useridSet.size() != 0) { Iterator iter = useridSet.iterator(); while (iter.hasNext()) { String id = (String) iter.next(); try { agentEid = userDirectoryService.getUser(id).getEid(); firstName = userDirectoryService.getUser(id).getFirstName(); lastName = userDirectoryService.getUser(id).getLastName(); } catch (Exception e) { log.error("Cannot get user"); } responseList = new ArrayList(); responseList.add(lastName); responseList.add(firstName); responseList.add(agentEid); responseList.add(noSubmissionMessage); dataList.add(responseList); } } Collections.sort(dataList, new ResponsesComparator(anonymous)); finalList.add(dataList); finalList.add(headerList); return finalList; }
From source file:org.nd4j.linalg.factory.Nd4j.java
/** * Sort an ndarray along a particular dimension * * @param ndarray the ndarray to sort/*w ww . j a va 2 s . c o m*/ * @param dimension the dimension to sort * @return the indices and the sorted ndarray */ public static INDArray[] sortWithIndices(INDArray ndarray, int dimension, boolean ascending) { INDArray indices = Nd4j.create(ndarray.shape()); INDArray[] ret = new INDArray[2]; for (int i = 0; i < ndarray.vectorsAlongDimension(dimension); i++) { INDArray vec = ndarray.vectorAlongDimension(i, dimension); INDArray indexVector = indices.vectorAlongDimension(i, dimension); final Double[] data = new Double[vec.length()]; final Double[] index = new Double[vec.length()]; for (int j = 0; j < vec.length(); j++) { data[j] = vec.getDouble(j); index[j] = (double) j; } /** * Inject a comparator that sorts indices relative to * the actual values in the data. * This allows us to retain the indices * and how they were rearranged. */ Arrays.sort(index, new Comparator<Double>() { @Override public int compare(Double o1, Double o2) { int o = (int) o1.doubleValue(); int oo2 = (int) o2.doubleValue(); return Double.compare(data[o], data[oo2]); } }); if (ascending) for (int j = 0; j < vec.length(); j++) { vec.putScalar(j, data[(int) index[j].doubleValue()]); indexVector.putScalar(j, index[j]); } else { int count = data.length - 1; for (int j = 0; j < vec.length(); j++) { int currCount2 = count; count--; vec.putScalar(j, data[(int) index[currCount2].doubleValue()]); indexVector.putScalar(j, index[currCount2]); } } } ret[0] = indices; ret[1] = ndarray; return ret; }
From source file:org.nd4j.linalg.factory.Nd4j.java
/** * Sort an ndarray along a particular dimension * * @param ndarray the ndarray to sort//from w ww . ja v a2s .c om * @param dimension the dimension to sort * @return an array with indices and the sorted ndarray */ public static INDArray[] sortWithIndices(IComplexNDArray ndarray, int dimension, boolean ascending) { INDArray indices = Nd4j.create(ndarray.shape()); INDArray[] ret = new INDArray[2]; for (int i = 0; i < ndarray.vectorsAlongDimension(dimension); i++) { IComplexNDArray vec = ndarray.vectorAlongDimension(i, dimension); INDArray indexVector = indices.vectorAlongDimension(i, dimension); final IComplexNumber[] data = new IComplexNumber[vec.length()]; final Double[] index = new Double[vec.length()]; for (int j = 0; j < vec.length(); j++) { data[j] = vec.getComplex(j); index[j] = (double) j; } if (ascending) Arrays.sort(index, new Comparator<Double>() { @Override public int compare(Double o1, Double o2) { int idx1 = (int) o1.doubleValue(); int idx2 = (int) o2.doubleValue(); return Double.compare(data[idx1].absoluteValue().doubleValue(), data[idx2].absoluteValue().doubleValue()); } }); else Arrays.sort(index, new Comparator<Double>() { @Override public int compare(Double o1, Double o2) { int idx1 = (int) o1.doubleValue(); int idx2 = (int) o2.doubleValue(); return -Double.compare(data[idx1].absoluteValue().doubleValue(), data[idx2].absoluteValue().doubleValue()); } }); for (int j = 0; j < vec.length(); j++) { vec.putScalar(j, data[(int) index[j].doubleValue()]); indexVector.putScalar(j, index[j]); } } ret[0] = indices; ret[1] = ndarray; return ret; }
From source file:com.lp.webapp.zemecs.CommandZE.java
public synchronized String execute(HttpServletRequest request, HttpServletResponse response) throws Exception { super.execute(request, response); if (request.getCookies() != null) { for (int i = 0; i < request.getCookies().length; i++) { Cookie cookie = request.getCookies()[i]; cookie.setMaxAge(10000000);/* ww w . j a va 2s . co m*/ response.addCookie(cookie); } } String mandant = request.getParameter("mandant"); Locale localeLogon = getMandantFac().getLocaleDesHauptmandanten(); String locale = request.getParameter("locale"); String localeCookie = getCookieValue("locale", request); if (localeCookie != null && localeCookie.length() > 3) { locale = localeCookie; } if (locale != null && locale.length() > 3) { localeLogon = new Locale(locale.substring(0, 2), locale.substring(2, 4)); } TheClientDto theclientDto = null; synchronized (mutex) { theclientDto = getLogonFac().logon(Helper.getFullUsername(sUser), Helper.getMD5Hash((sUser + new String("lpwebappzemecs")).toCharArray()), localeLogon, null, null, new Timestamp(System.currentTimeMillis())); if (mandant != null && mandant.length() > 0) { theclientDto = getLogonFac().logon(Helper.getFullUsername(sUser), Helper.getMD5Hash((sUser + "lpwebappzemecs").toCharArray()), localeLogon, mandant, theclientDto, new Timestamp(System.currentTimeMillis())); } else { BenutzerDto benutzerDto = getBenutzerFac().benutzerFindByCBenutzerkennung("lpwebappzemecs", new String(Helper.getMD5Hash("lpwebappzemecs" + "lpwebappzemecs"))); mandant = benutzerDto.getMandantCNrDefault(); } } getTheClient(request, response).setTheClientDto(theclientDto); if (command.equals(TheApp.CMD_ZE_BDESTATION)) { String ausweis = request.getParameter("ausweis"); getTheClient(request, response).setSMsg(""); if (ausweis != null && ausweis.length() > 1) { // Personal suchen PersonalDto personalDto = getPersonalFac().personalFindByCAusweis(ausweis.substring(2)); if (personalDto != null) { personalDto.setPartnerDto( getPartnerFac().partnerFindByPrimaryKey(personalDto.getPartnerIId(), theclientDto)); HashMap<String, Serializable> hmParameter = new HashMap<String, Serializable>(); ZeitdatenDto zeitdatenDto = new ZeitdatenDto(); zeitdatenDto.setCWowurdegebucht("BDE-Station " + request.getRemoteHost()); zeitdatenDto.setPersonalIId(personalDto.getIId()); hmParameter.put("zeitdaten", zeitdatenDto); hmParameter.put("person", personalDto.getPartnerDto().formatFixTitelName1Name2()); getTheClient(request, response).setData(hmParameter); setSJSPNext("bdestation2.jsp"); return getSJSPNext(); } else { getTheClient(request, response) .setSMsg("Ausweis " + ausweis + " bei diesem Mandanten nicht gefunden! "); } } else { getTheClient(request, response).setSMsg(""); } } if (command.equals(TheApp.CMD_ZE_BDESTATION2)) { HashMap<String, Serializable> hmParameter = (HashMap<String, Serializable>) getTheClient(request, response).getData(); ZeitdatenDto zeitdatenDto = (ZeitdatenDto) hmParameter.get("zeitdaten"); zeitdatenDto.setTZeit(new Timestamp(System.currentTimeMillis())); String option = request.getParameter("option"); getTheClient(request, response).setSMsg(""); ParametermandantDto parameterBdeMitTaetigkeitDto = getParameterFac().getMandantparameter(mandant, ParameterFac.KATEGORIE_PERSONAL, ParameterFac.PARAMETER_BDE_MIT_TAETIGKEIT); Boolean bBdeMitTaetigkeit = (Boolean) parameterBdeMitTaetigkeitDto.getCWertAsObject(); com.lp.server.artikel.service.ArtikelDto artikelDtoDefaultArbeiztszeit = null; if (bBdeMitTaetigkeit == false) { ParametermandantDto parameterDtoDefaultarbeitszeit = getParameterFac().getMandantparameter(mandant, ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_DEFAULT_ARBEITSZEITARTIKEL); if (parameterDtoDefaultarbeitszeit != null && parameterDtoDefaultarbeitszeit.getCWert() != null && !parameterDtoDefaultarbeitszeit.getCWert().trim().equals("")) { try { artikelDtoDefaultArbeiztszeit = getArtikelFac() .artikelFindByCNr(parameterDtoDefaultarbeitszeit.getCWert(), theclientDto); zeitdatenDto.setArtikelIId(artikelDtoDefaultArbeiztszeit.getIId()); } catch (RemoteException ex2) { myLogger.error("Default-Arbeitszeitartikel " + parameterDtoDefaultarbeitszeit.getCWert() + " nicht vorhanden.", ex2); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } } else { myLogger.error("Default-Arbeitszeitartikel " + parameterDtoDefaultarbeitszeit.getCWert() + " nicht definiert."); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } } if (option != null && option.length() > 2) { // Auftrag if (option.substring(0, 2).equals("$A") || option.substring(0, 3).equals("$EA")) { try { ParametermandantDto parameterDto = getParameterFac().getMandantparameter(mandant, ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_BELEGNUMMERNFORMAT_STELLEN_GESCHAEFTSJAHR); if (parameterDto != null) { if (parameterDto.getCWert() != null && parameterDto.getCWert().equals("4")) { if (option.charAt(4) == 47) { option = "$A" + Helper.konvertiereDatum2StelligAuf4Stellig(option.substring(2, 4)) + option.substring(4); } } } AuftragDto auftragDto = null; if (option.substring(0, 2).equals("$A")) { auftragDto = getAuftragFac().auftragFindByMandantCNrCNr(mandant, option.substring(2), theclientDto); } else { auftragDto = getAuftragFac().auftragFindByMandantCNrCNr(mandant, option.substring(3), theclientDto); } AuftragpositionDto[] auftragpositionDtos = getAuftragpositionFac() .auftragpositionFindByAuftrag(auftragDto.getIId()); if (auftragDto.getAuftragstatusCNr() .equals(com.lp.server.auftrag.service.AuftragServiceFac.AUFTRAGSTATUS_ERLEDIGT)) { setSJSPNext("bdestation.jsp"); getTheClient(request, response).setSMsg("Auf Auftrag " + option.substring(2) + " mit Status " + auftragDto.getAuftragstatusCNr().trim() + " darf nicht gebucht werden! "); return getSJSPNext(); } else { if (auftragpositionDtos != null && auftragpositionDtos.length > 0) { zeitdatenDto.setIBelegartpositionid(auftragpositionDtos[0].getIId()); zeitdatenDto.setIBelegartid(auftragpositionDtos[0].getBelegIId()); zeitdatenDto.setCBelegartnr(LocaleFac.BELEGART_AUFTRAG); hmParameter.put("beleg", "A" + option.substring(2)); MaschineDto maschineDto = new MaschineDto(); maschineDto.setCBez(""); hmParameter.put("maschine", maschineDto); if (option.substring(0, 2).equals("$A")) { if (bBdeMitTaetigkeit == false) { setSJSPNext("bdestation.jsp"); getTheClient(request, response).setSMsg( getMeldungGebuchtFuerBDE(getTheClient(request, response).getData(), artikelDtoDefaultArbeiztszeit.getCNr(), theclientDto)); getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, false, theclientDto); return getSJSPNext(); } else { setSJSPNext("bdestation4.jsp"); } } else { hmParameter.put("beleg", "A" + option.substring(3)); setSJSPNext("bdestation3gutschlecht.jsp"); } return getSJSPNext(); } else { getTheClient(request, response) .setSMsg("Auftrag " + option.substring(2) + " hat keine Positionen! "); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } } } catch (EJBExceptionLP ex) { getTheClient(request, response).setSMsg( "Auftrag '" + option.substring(2) + "' bei diesem Mandanten nicht gefunden! "); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } } // Los else if (option.substring(0, 2).equals("$L") || option.substring(0, 3).equals("$EL")) { try { ParametermandantDto parameterDto = getParameterFac().getMandantparameter(mandant, ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_BELEGNUMMERNFORMAT_STELLEN_GESCHAEFTSJAHR); if (parameterDto != null) { if (parameterDto.getCWert() != null && parameterDto.getCWert().equals("4")) { if (option.charAt(4) == 47) { option = "$L" + Helper.konvertiereDatum2StelligAuf4Stellig(option.substring(2, 4)) + option.substring(4); } } } com.lp.server.fertigung.service.LosDto losDto = null; if (option.substring(0, 2).equals("$L")) { losDto = getFertigungFac().losFindByCNrMandantCNr(option.substring(2), mandant); } else { losDto = getFertigungFac().losFindByCNrMandantCNr(option.substring(3), mandant); } // WH 18-01-2006: Los benoetigt keine Positionen if (losDto.getStatusCNr() .equals(com.lp.server.fertigung.service.FertigungFac.STATUS_ANGELEGT) || losDto.getStatusCNr() .equals(com.lp.server.fertigung.service.FertigungFac.STATUS_AUSGEGEBEN) || losDto.getStatusCNr() .equals(com.lp.server.fertigung.service.FertigungFac.STATUS_GESTOPPT) || losDto.getStatusCNr() .equals(com.lp.server.fertigung.service.FertigungFac.STATUS_ERLEDIGT) || losDto.getStatusCNr() .equals(com.lp.server.fertigung.service.FertigungFac.STATUS_STORNIERT)) { getTheClient(request, response) .setSMsg("Auf Los " + option.substring(2) + " mit Status " + losDto.getStatusCNr().trim() + " darf nicht gebucht werden! "); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } else { zeitdatenDto.setIBelegartid(losDto.getIId()); zeitdatenDto.setCBelegartnr(LocaleFac.BELEGART_LOS); if (option.substring(0, 2).equals("$L")) { hmParameter.put("beleg", "L" + option.substring(2)); if (bBdeMitTaetigkeit == false) { setSJSPNext("bdestation.jsp"); getTheClient(request, response).setSMsg( getMeldungGebuchtFuerBDE(getTheClient(request, response).getData(), artikelDtoDefaultArbeiztszeit.getCNr(), theclientDto)); getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, true, theclientDto); return getSJSPNext(); } else { setSJSPNext("bdestation3.jsp"); } } else { hmParameter.put("beleg", "L" + option.substring(3)); setSJSPNext("bdestation3gutschlecht.jsp"); } return getSJSPNext(); } } catch (EJBExceptionLP ex) { getTheClient(request, response) .setSMsg("Los '" + option.substring(2) + "' bei diesem Mandanten nicht gefunden! "); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } } // Kombi-Code else if (option.length() > 1 && option.substring(0, 2).equals("$V")) { setSJSPNext("bdestation.jsp"); if (option.length() < 12) { getTheClient(request, response).setSMsg("Kombicode muss 10-Stellig sein "); return getSJSPNext(); } try { ParametermandantDto parameter = getParameterFac().getMandantparameter( theclientDto.getMandant(), ParameterFac.KATEGORIE_FERTIGUNG, ParameterFac.PARAMETER_LOSNUMMER_AUFTRAGSBEZOGEN); int iVerlaengerungLosnummer = 0; if ((Integer) parameter.getCWertAsObject() >= 1) { iVerlaengerungLosnummer = 2; } com.lp.server.fertigung.service.LosDto losDto = getFertigungFac() .losFindByCNrMandantCNr(option.substring(2, 12 + iVerlaengerungLosnummer), mandant); // WH 18-01-2006: Los benoetigt keine Positionen if (losDto.getStatusCNr() .equals(com.lp.server.fertigung.service.FertigungFac.STATUS_ANGELEGT) || losDto.getStatusCNr() .equals(com.lp.server.fertigung.service.FertigungFac.STATUS_AUSGEGEBEN) || losDto.getStatusCNr() .equals(com.lp.server.fertigung.service.FertigungFac.STATUS_GESTOPPT) || losDto.getStatusCNr() .equals(com.lp.server.fertigung.service.FertigungFac.STATUS_ERLEDIGT) || losDto.getStatusCNr() .equals(com.lp.server.fertigung.service.FertigungFac.STATUS_STORNIERT)) { getTheClient(request, response) .setSMsg("Auf Los " + option.substring(2) + " mit Status " + losDto.getStatusCNr().trim() + " darf nicht gebucht werden! "); } else { zeitdatenDto.setIBelegartid(losDto.getIId()); zeitdatenDto.setCBelegartnr(LocaleFac.BELEGART_LOS); String maschine = option.substring(12 + iVerlaengerungLosnummer, 14 + iVerlaengerungLosnummer); String taetigkeit = option.substring(14 + iVerlaengerungLosnummer); MaschineDto maschineDto = new MaschineDto(); maschineDto.setCBez(maschine); hmParameter.put("maschine", maschineDto); hmParameter.put("beleg", "L" + option.substring(2, 12 + iVerlaengerungLosnummer)); com.lp.server.artikel.service.ArtikelDto artikelDto = null; try { artikelDto = getArtikelFac().artikelFindByCNr(taetigkeit, theclientDto); zeitdatenDto.setArtikelIId( getArtikelFac().artikelFindByCNr(taetigkeit, theclientDto).getIId()); } catch (RemoteException ex2) { getTheClient(request, response) .setSMsg("T\u00E4tigkeit '" + taetigkeit + "' nicht gefunden! "); return getSJSPNext(); } com.lp.server.fertigung.service.LossollarbeitsplanDto[] dtos = getFertigungFac() .lossollarbeitsplanFindByLosIIdArtikelIIdTaetigkeit(losDto.getIId(), artikelDto.getIId()); if (dtos != null && dtos.length > 0) { if (!maschine.trim().equals("") && !maschine.equals("--")) { try { Integer maschineIId = getZeiterfassungsFac() .maschineFindByCIdentifikationsnr(maschine).getIId(); com.lp.server.fertigung.service.LossollarbeitsplanDto[] sollaDtos = getFertigungFac() .lossollarbeitsplanFindByLosIIdArtikelIIdTaetigkeit( zeitdatenDto.getIBelegartid(), zeitdatenDto.getArtikelIId()); if (sollaDtos != null && sollaDtos.length > 0) { MaschinenzeitdatenDto maschinenzeitdatenDto = new MaschinenzeitdatenDto(); maschinenzeitdatenDto.setLossollarbeitsplanIId(sollaDtos[0].getIId()); maschinenzeitdatenDto.setMaschineIId(maschineIId); maschinenzeitdatenDto .setPersonalIIdGestartet(zeitdatenDto.getPersonalIId()); maschinenzeitdatenDto.setTVon(zeitdatenDto.getTZeit()); getZeiterfassungsFac().createMaschinenzeitdaten(maschinenzeitdatenDto, theclientDto); } } catch (RemoteException ex2) { getTheClient(request, response) .setSMsg("Maschine '" + maschine + "' nicht gefunden! "); return getSJSPNext(); } } // PJ 15388 if (maschine.equals("--")) { hmParameter.put("fertig", ""); if (dtos != null && dtos.length > 0) { LossollarbeitsplanDto dto = dtos[0]; dto.setBFertig(Helper.boolean2Short(true)); try { getFertigungFac().updateLossollarbeitsplan(dto, theclientDto); getTheClient(request, response).setSMsg(getMeldungGebuchtFuerBDE( getTheClient(request, response).getData(), taetigkeit.substring(2), theclientDto)); return getSJSPNext(); } catch (EJBExceptionLP ex2) { getTheClient(request, response).setSMsg("Fehler beim Buchen!"); return getSJSPNext(); } } else { getTheClient(request, response).setSMsg("Das Los " + option.substring(2, 12 + iVerlaengerungLosnummer) + " hat keinen entsprechen Arbeitsgang mit der Artikelnummer " + taetigkeit.substring(2)); return getSJSPNext(); } } zeitdatenDto.setIBelegartpositionid(dtos[0].getIId()); } else { com.lp.server.fertigung.service.LossollarbeitsplanDto[] dtosErstePosition = getFertigungFac() .lossollarbeitsplanFindByLosIId(losDto.getIId()); if (dtosErstePosition != null && dtosErstePosition.length > 0) { zeitdatenDto.setIBelegartpositionid(dtosErstePosition[0].getIId()); } else { // Bemerkung getTheClient(request, response) .setSMsg("Los " + option.substring(2) + " hat keine Positionen"); return getSJSPNext(); } } try { getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, true, theclientDto); getTheClient(request, response).setSMsg(getMeldungGebuchtFuerBDE( getTheClient(request, response).getData(), taetigkeit, theclientDto)); } catch (EJBExceptionLP ex2) { getTheClient(request, response).setSMsg("Fehler beim Buchen!"); return getSJSPNext(); } } } catch (EJBExceptionLP ex) { getTheClient(request, response) .setSMsg("Los '" + option.substring(2) + "' bei diesem Mandanten nicht gefunden! "); return getSJSPNext(); } return getSJSPNext(); } // Sondertaetigkeit else { if (option.substring(1).equals("SALDO")) { java.sql.Timestamp ts = new java.sql.Timestamp(System.currentTimeMillis() - 3600000 * 24); ts = com.lp.util.Helper.cutTimestamp(ts); Calendar c = Calendar.getInstance(); c.setTimeInMillis(ts.getTime()); String saldoMitUrlaub = ""; try { saldoMitUrlaub = getZeiterfassungsFac().erstelleMonatsAbrechnungFuerBDE( zeitdatenDto.getPersonalIId(), new Integer(c.get(Calendar.YEAR)), new Integer(c.get(Calendar.MONTH)), false, new java.sql.Date(ts.getTime()), theclientDto, true, false); } catch (EJBExceptionLP ex7) { if (ex7.getCause() instanceof EJBExceptionLP) { EJBExceptionLP e = (EJBExceptionLP) ex7.getCause(); if (e != null && e .getCode() == EJBExceptionLP.FEHLER_PERSONAL_FEHLER_BEI_EINTRITTSDATUM) { getTheClient(request, response) .setSMsg(new String("FEHLER_PERSONAL_FEHLER_BEI_EINTRITTSDATUM")); return getSJSPNext(); } } getTheClient(request, response).setSMsg(new String(ex7.getMessage())); setSJSPNext("bdestation.jsp"); } getTheClient(request, response).setSMsg(saldoMitUrlaub); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } else if (option.substring(1).equals("TAGESSALDO")) { java.sql.Timestamp ts = new java.sql.Timestamp(System.currentTimeMillis() - 3600000 * 24); Double d = getZeiterfassungsFac().berechneTagesArbeitszeit(zeitdatenDto.getPersonalIId(), new java.sql.Date(System.currentTimeMillis()), theclientDto); StringBuffer sb = new StringBuffer(); sb.append("Tagesarbeitszeit bis jetzt: " + Helper.rundeKaufmaennisch(new BigDecimal(d.doubleValue()), 2).doubleValue() + "h"); sb.append("\r\n"); getTheClient(request, response).setSMsg(new String(sb)); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } else { try { TaetigkeitDto taetigkeitDto = getZeiterfassungsFac() .taetigkeitFindByCNr(option.substring(1), theclientDto); zeitdatenDto.setTaetigkeitIId(taetigkeitDto.getIId()); getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, true, theclientDto); getTheClient(request, response).setSMsg( getMeldungGebuchtFuerBDE(hmParameter, option.substring(1), theclientDto)); } catch (EJBExceptionLP ex1) { getTheClient(request, response) .setSMsg("Sondert\u00E4tigkeit '" + option.substring(1) + "' nicht gefunden! "); } hmParameter.put("zeitdaten", zeitdatenDto); setSJSPNext("bdestation.jsp"); } getTheClient(request, response).setData(hmParameter); return getSJSPNext(); } } } else if (command.equals(TheApp.CMD_ZE_BDESTATION3)) { HashMap<String, Serializable> hmParameter = (HashMap<String, Serializable>) getTheClient(request, response).getData(); ZeitdatenDto zeitdatenDto = (ZeitdatenDto) hmParameter.get("zeitdaten"); zeitdatenDto.setTZeit(new Timestamp(System.currentTimeMillis())); String option = request.getParameter("option"); getTheClient(request, response).setSMsg(""); if (option != null && option.length() > 0) { if (option.equals("$PLUS")) { // CK: PJ5589 String beleg = (String) hmParameter.get("beleg"); if (beleg.substring(0, 1).equals("L")) { com.lp.server.fertigung.service.LosDto losDto = getFertigungFac() .losFindByCNrMandantCNr(beleg.substring(1), mandant); ZeitverteilungDto zeitverteilungDto = new ZeitverteilungDto(); zeitverteilungDto.setLosIId(losDto.getIId()); zeitverteilungDto.setTZeit(new Timestamp(System.currentTimeMillis())); zeitverteilungDto.setPersonalIId(zeitdatenDto.getPersonalIId()); try { getZeiterfassungsFac().createZeitverteilung(zeitverteilungDto, theclientDto); } catch (EJBExceptionLP e) { hmParameter.remove("beleg"); getTheClient(request, response).setData(hmParameter); getTheClient(request, response) .setSMsg("Los '" + losDto.getCNr() + "' wurde bereits mit $PLUS gebucht"); setSJSPNext("bdestation2.jsp"); return getSJSPNext(); } } else { getTheClient(request, response).setSMsg("$PLUS ist nur f\u00FCr Lose m\u00F6glich."); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } hmParameter.remove("beleg"); getTheClient(request, response).setData(hmParameter); setSJSPNext("bdestation2.jsp"); return getSJSPNext(); } else if (option.equals("$STORNO")) { getZeiterfassungsFac().removeZeitverteilungByPersonalIIdUndTag(zeitdatenDto.getPersonalIId(), new Timestamp(System.currentTimeMillis())); hmParameter.remove("beleg"); getTheClient(request, response).setData(hmParameter); setSJSPNext("bdestation2.jsp"); } else if (option.equals("$SPERREN")) { String beleg = (String) hmParameter.get("beleg"); if (beleg.substring(0, 1).equals("L")) { com.lp.server.fertigung.service.LosDto losDto = getFertigungFac() .losFindByCNrMandantCNr(beleg.substring(1), mandant); if (losDto.getStuecklisteIId() != null) { Integer artikelIId = getStuecklisteFac() .stuecklisteFindByPrimaryKey(losDto.getStuecklisteIId(), theclientDto) .getArtikelIId(); SperrenDto sDto = getArtikelFac().sperrenFindBDurchfertigung(theclientDto); if (sDto != null) { ArtikelsperrenDto aspDtoVorhanden = getArtikelFac() .artikelsperrenFindByArtikelIIdSperrenIIdOhneExc(artikelIId, sDto.getIId()); if (aspDtoVorhanden == null) { ArtikelsperrenDto spDto = new ArtikelsperrenDto(); spDto.setArtikelIId(artikelIId); spDto.setSperrenIId(sDto.getIId()); PersonalDto pDto = getPersonalFac() .personalFindByPrimaryKey(zeitdatenDto.getPersonalIId(), theclientDto); String grund = beleg + " " + pDto.getPartnerDto().getCName1nachnamefirmazeile1() + " " + pDto.getPartnerDto().getCName2vornamefirmazeile2(); if (grund.length() > 80) { grund = grund.substring(0, 79); } spDto.setCGrund(grund); getArtikelFac().createArtikelsperren(spDto, theclientDto); getTheClient(request, response) .setSMsg("Los " + losDto.getCNr() + " durch Fertigung gesperrt."); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } else { getTheClient(request, response) .setSMsg("St\u00FCckliste bereits durch Fertigung gesperrt."); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } } else { getTheClient(request, response) .setSMsg("Fertigungssperre in Grunddaten nicht definiert."); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } } setSJSPNext("bdestation.jsp"); return getSJSPNext(); } } else if (option.equals("$FERTIG")) { hmParameter.put("fertig", ""); MaschineDto maschineDto = new MaschineDto(); maschineDto.setCBez("Fertig"); hmParameter.put("maschine", maschineDto); getTheClient(request, response).setData(hmParameter); setSJSPNext("bdestation4.jsp"); return getSJSPNext(); } else { setSJSPNext("bdestation.jsp"); // MASCHINE if (option.substring(0, 2).equals("$M")) { String maschine = option.substring(2); try { MaschineDto maschineDto = getZeiterfassungsFac() .maschineFindByCIdentifikationsnr(maschine); hmParameter.put("zeitdaten", zeitdatenDto); hmParameter.put("maschine", maschineDto); setSJSPNext("bdestation4.jsp"); return getSJSPNext(); } catch (EJBExceptionLP ex2) { getTheClient(request, response).setSMsg("Maschine '" + maschine + "' nicht gefunden! "); return getSJSPNext(); } } // TAETIGKEIT else { String taetigkeit = option.substring(2); com.lp.server.artikel.service.ArtikelDto artikelDto = null; try { artikelDto = getArtikelFac().artikelFindByCNr(taetigkeit, theclientDto); zeitdatenDto.setArtikelIId( getArtikelFac().artikelFindByCNr(taetigkeit, theclientDto).getIId()); } catch (EJBExceptionLP ex2) { getTheClient(request, response) .setSMsg("T\u00E4tigkeit '" + taetigkeit + "' nicht gefunden! "); return getSJSPNext(); } String beleg = (String) hmParameter.get("beleg"); if (beleg.substring(0, 1).equals("L")) { com.lp.server.fertigung.service.LosDto losDto = getFertigungFac() .losFindByCNrMandantCNr(beleg.substring(1), mandant); ZeitverteilungDto[] zvDtos = getZeiterfassungsFac() .zeitverteilungFindByPersonalIIdUndTag(zeitdatenDto.getPersonalIId(), new Timestamp(System.currentTimeMillis())); if (zvDtos != null & zvDtos.length > 0) { if (zvDtos[0].getArtikelIId() == null) { // Abschlussbuchung eintragen ZeitverteilungDto zv = zvDtos[0]; zv.setIId(null); zv.setLosIId(losDto.getIId()); zv.setArtikelIId(artikelDto.getIId()); try { getZeiterfassungsFac().createZeitverteilung(zv, theclientDto); } catch (EJBExceptionLP e) { hmParameter.remove("beleg"); getTheClient(request, response).setData(hmParameter); getTheClient(request, response).setSMsg( "Los '" + losDto.getCNr() + "' wurde bereits mit $PLUS gebucht"); setSJSPNext("bdestation2.jsp"); return getSJSPNext(); } hmParameter.remove("beleg"); getTheClient(request, response).setData(hmParameter); getTheClient(request, response) .setSMsg("Beginnbuchungen f\u00FCr 'Zeitverteilung' abgeschlossen"); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } } com.lp.server.fertigung.service.LossollarbeitsplanDto[] dtos = getFertigungFac() .lossollarbeitsplanFindByLosIIdArtikelIIdTaetigkeit(losDto.getIId(), artikelDto.getIId()); if (dtos != null && dtos.length > 0) { zeitdatenDto.setIBelegartpositionid(dtos[0].getIId()); } else { com.lp.server.fertigung.service.LossollarbeitsplanDto[] dtosErstePosition = getFertigungFac() .lossollarbeitsplanFindByLosIId(losDto.getIId()); if (dtosErstePosition != null && dtosErstePosition.length > 0) { zeitdatenDto.setIBelegartpositionid(dtosErstePosition[0].getIId()); } else { // Bemerkung getTheClient(request, response) .setSMsg("Los " + beleg.substring(1) + " hat keine Positionen"); return getSJSPNext(); } } } try { getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, true, theclientDto); getTheClient(request, response).setSMsg(getMeldungGebuchtFuerBDE( getTheClient(request, response).getData(), taetigkeit, theclientDto)); return getSJSPNext(); } catch (EJBExceptionLP ex2) { getTheClient(request, response).setSMsg("Fehler beim Buchen!"); return getSJSPNext(); } } } } } else if (command.equals(TheApp.CMD_ZE_BDESTATION3GUTSCHLECHT)) { HashMap<Object, Object> hmParameter = (HashMap<Object, Object>) getTheClient(request, response) .getData(); ZeitdatenDto zeitdatenDto = (ZeitdatenDto) hmParameter.get("zeitdaten"); String gutstueck = request.getParameter("gutstueck"); if (gutstueck.equals("")) { gutstueck = "0"; } String schlechtstueck = request.getParameter("schlechtstueck"); if (schlechtstueck.equals("")) { schlechtstueck = "0"; } BigDecimal bdGutstueck = null; BigDecimal bdSchlechtstueck = null; try { bdGutstueck = new BigDecimal(gutstueck); bdSchlechtstueck = new BigDecimal(schlechtstueck); } catch (NumberFormatException ex9) { getTheClient(request, response) .setSMsg("Gut/Schlechtst\u00FCck d\u00FCrfen nur aus Zahlen bestehen."); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } if (bdGutstueck.doubleValue() < 0 || bdSchlechtstueck.doubleValue() < 0) { getTheClient(request, response).setSMsg("Gut/Schlechtst\u00FCck m\u00FCssen Positiv sein."); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } Integer taetigkeitIId_Ende = getZeiterfassungsFac() .taetigkeitFindByCNr(ZeiterfassungFac.TAETIGKEIT_ENDE, theclientDto).getIId(); ZeitdatenDto zeitdatenDtoEnde = new ZeitdatenDto(); zeitdatenDtoEnde.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime() + 1000)); zeitdatenDtoEnde.setTaetigkeitIId(taetigkeitIId_Ende); zeitdatenDtoEnde.setPersonalIId(zeitdatenDto.getPersonalIId()); // Hole letzten begonnenen Auftrag und hinterlege gut/schlechtstueck Session session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria liste = session.createCriteria(FLRZeitdaten.class); liste.add(Expression.eq(ZeiterfassungFac.FLR_ZEITDATEN_PERSONAL_I_ID, zeitdatenDto.getPersonalIId())); liste.add(Expression.gt(ZeiterfassungFac.FLR_ZEITDATEN_T_ZEIT, Helper.cutTimestamp(zeitdatenDto.getTZeit()))); liste.addOrder(Order.desc(ZeiterfassungFac.FLR_ZEITDATEN_T_ZEIT)); List<?> letzerAuftrag = liste.list(); Iterator<?> it = letzerAuftrag.iterator(); ZeitdatenDto letzterAuftrag = null; while (it.hasNext()) { FLRZeitdaten flrLetzerAuftrag = (FLRZeitdaten) it.next(); if (flrLetzerAuftrag.getC_belegartnr() != null && flrLetzerAuftrag.getI_belegartid() != null) { if (flrLetzerAuftrag.getC_belegartnr().equals(zeitdatenDto.getCBelegartnr()) && flrLetzerAuftrag.getI_belegartid().equals(zeitdatenDto.getIBelegartid())) { letzterAuftrag = getZeiterfassungsFac() .zeitdatenFindByPrimaryKey(flrLetzerAuftrag.getI_id(), theclientDto); break; } } else if (flrLetzerAuftrag.getTaetigkeit_i_id() != null && flrLetzerAuftrag.getTaetigkeit_i_id().equals(taetigkeitIId_Ende)) { break; } } if (letzterAuftrag != null) { // Hier eintragen // letzterAuftrag.setNGut(bdGutstueck); // letzterAuftrag.setNSchlecht(bdSchlechtstueck); getZeiterfassungsFac().updateZeitdaten(letzterAuftrag, theclientDto); // und buche ENDE getZeiterfassungsFac().createZeitdaten(zeitdatenDtoEnde, false, false, false, theclientDto); } else { // was nun? // Beginn und ende Buchen getZeiterfassungsFac().createZeitdaten(zeitdatenDto, false, false, false, theclientDto); getZeiterfassungsFac().createZeitdaten(zeitdatenDtoEnde, false, false, false, theclientDto); } session.close(); getTheClient(request, response).setSMsg( getMeldungGebuchtFuerBDE(getTheClient(request, response).getData(), null, theclientDto)); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } else if (command.equals(TheApp.CMD_ZE_BDESTATION4)) { HashMap<?, ?> hmParameter = (HashMap<?, ?>) getTheClient(request, response).getData(); ZeitdatenDto zeitdatenDto = (ZeitdatenDto) hmParameter.get("zeitdaten"); zeitdatenDto.setTZeit(new Timestamp(System.currentTimeMillis())); String taetigkeit = request.getParameter("taetigkeit"); getTheClient(request, response).setSMsg(""); if (taetigkeit != null && taetigkeit.length() > 0) { setSJSPNext("bdestation.jsp"); com.lp.server.artikel.service.ArtikelDto artikelDto = null; try { artikelDto = getArtikelFac().artikelFindByCNr(taetigkeit.substring(2), theclientDto); zeitdatenDto.setArtikelIId(artikelDto.getIId()); } catch (EJBExceptionLP ex2) { getTheClient(request, response) .setSMsg("T\u00E4tigkeit '" + taetigkeit.substring(2) + "' nicht gefunden! "); return getSJSPNext(); } String beleg = (String) hmParameter.get("beleg"); if (beleg.substring(0, 1).equals("L")) { com.lp.server.fertigung.service.LosDto losDto = getFertigungFac() .losFindByCNrMandantCNr(beleg.substring(1), mandant); com.lp.server.fertigung.service.LossollarbeitsplanDto[] dtos = getFertigungFac() .lossollarbeitsplanFindByLosIIdArtikelIIdTaetigkeit(losDto.getIId(), artikelDto.getIId()); if (hmParameter.containsKey("fertig")) { if (dtos != null && dtos.length > 0) { LossollarbeitsplanDto dto = dtos[0]; dto.setBFertig(Helper.boolean2Short(true)); ParametermandantDto parameterDtoTriggerTops = getParameterFac().getMandantparameter( mandant, ParameterFac.KATEGORIE_FERTIGUNG, ParameterFac.PARAMETER_TRIGGERT_TRUMPF_TOPS_ABLIEFERUNG); try { getFertigungFac().updateLossollarbeitsplan(dto, theclientDto); // PJ 17916 if (parameterDtoTriggerTops.getCWert() != null && parameterDtoTriggerTops.getCWert().trim().length() > 0) { ArtikelDto aDto = getArtikelFac().artikelFindByCNrMandantCNrOhneExc( parameterDtoTriggerTops.getCWert().trim(), theclientDto.getMandant()); if (aDto == null) { getTheClient(request, response).setSMsg( "Der Artikel, der im Parameter TRIGGERT_TRUMPF_TOPS_ABLIEFERUNG hinterlegt ist, exisitiert nicht! " + parameterDtoTriggerTops.getCWert()); return getSJSPNext(); } if (aDto != null && aDto.getIId().equals(artikelDto.getIId())) { getFertigungFac().bucheTOPSArtikelAufHauptLager(losDto.getIId(), theclientDto, null); } } getTheClient(request, response) .setSMsg(getMeldungGebuchtFuerBDE(getTheClient(request, response).getData(), taetigkeit.substring(2), theclientDto)); return getSJSPNext(); } catch (EJBExceptionLP ex2) { getTheClient(request, response).setSMsg("Fehler beim Buchen!"); return getSJSPNext(); } } else { getTheClient(request, response).setSMsg("Das Los " + beleg.substring(1) + " hat keinen entsprechen Arbeitsgang mit der Artikelnummer " + taetigkeit.substring(2)); return getSJSPNext(); } } if (dtos != null && dtos.length > 0) { zeitdatenDto.setIBelegartpositionid(dtos[0].getIId()); } else { com.lp.server.fertigung.service.LossollarbeitsplanDto[] dtosErstePosition = getFertigungFac() .lossollarbeitsplanFindByLosIId(losDto.getIId()); if (dtosErstePosition != null && dtosErstePosition.length > 0) { zeitdatenDto.setIBelegartpositionid(dtosErstePosition[0].getIId()); } else { // Bemerkung getTheClient(request, response) .setSMsg("Los " + beleg.substring(1) + " hat keine Positionen"); return getSJSPNext(); } } } // Maschinenzeitdaten buchen (geht nur auf Los) if (hmParameter.containsKey("maschine") && zeitdatenDto.getCBelegartnr() != null && zeitdatenDto.getCBelegartnr().equals(LocaleFac.BELEGART_LOS) && zeitdatenDto.getIBelegartid() != null) { MaschineDto maschineDto = (MaschineDto) hmParameter.get("maschine"); com.lp.server.fertigung.service.LossollarbeitsplanDto[] dtos = getFertigungFac() .lossollarbeitsplanFindByLosIIdArtikelIIdTaetigkeit(zeitdatenDto.getIBelegartid(), zeitdatenDto.getArtikelIId()); if (dtos != null && dtos.length > 0) { MaschinenzeitdatenDto maschinenzeitdatenDto = new MaschinenzeitdatenDto(); maschinenzeitdatenDto.setPersonalIIdGestartet(zeitdatenDto.getPersonalIId()); maschinenzeitdatenDto.setTVon(zeitdatenDto.getTZeit()); maschinenzeitdatenDto.setLossollarbeitsplanIId(dtos[0].getIId()); maschinenzeitdatenDto.setMaschineIId(maschineDto.getIId()); getZeiterfassungsFac().createMaschinenzeitdaten(maschinenzeitdatenDto, theclientDto); } } try { getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, false, theclientDto); getTheClient(request, response).setSMsg(getMeldungGebuchtFuerBDE( getTheClient(request, response).getData(), taetigkeit.substring(2), theclientDto)); return getSJSPNext(); } catch (EJBExceptionLP ex2) { getTheClient(request, response).setSMsg("Fehler beim Buchen!"); return getSJSPNext(); } } } else if (command.equals(TheApp.CMD_ZE_MECS_ONLCHECK)) { String beleg = request.getParameter("beleg"); if (beleg == null) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Parameter 'beleg' muss angegeben werden"); return null; } beleg = beleg.trim(); if (beleg.length() < 2) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Parameter 'beleg' muss mindestens 2 Zeichen lang sein"); return null; } String status = null; BigDecimal offeneMenge = new BigDecimal(0); String ueberliefernErlaubt = "1"; try { if (beleg.substring(0, 2).equals("$A")) { AuftragDto auftragDto = getAuftragFac().auftragFindByMandantCNrCNr(mandant, beleg.substring(2), theclientDto); status = auftragDto.getAuftragstatusCNr(); } else if (beleg.substring(0, 2).equals("$L")) { LosDto losDto = getFertigungFac().losFindByCNrMandantCNr(beleg.substring(2), mandant); status = losDto.getStatusCNr(); BigDecimal erledigteMenge = getFertigungFac().getErledigteMenge(losDto.getIId(), theclientDto); offeneMenge = losDto.getNLosgroesse().subtract(erledigteMenge); if (losDto.getStuecklisteIId() != null) { StuecklisteDto stkDto = getStuecklisteFac() .stuecklisteFindByPrimaryKey(losDto.getStuecklisteIId(), theclientDto); if (Helper.short2boolean(stkDto.getBUeberlieferbar()) == false) { ueberliefernErlaubt = "0"; } } } } catch (EJBExceptionLP ex8) { status = "Beleg existiert nicht"; } StringBuffer sb = new StringBuffer(); sb.append(Helper.fitString2Length(beleg, 40, ' ')); sb.append(Helper.fitString2Length(status, 40, ' ')); // Offene Menge 17 stellig DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance(); dfs.setDecimalSeparator('.'); DecimalFormat dFormat = new DecimalFormat("0.0000", dfs); if (offeneMenge.doubleValue() < 0) { sb.append("-"); } else { sb.append(" "); } sb.append(Helper.fitString2LengthAlignRight(dFormat.format(offeneMenge.abs()), 16, ' ')); sb.append(ueberliefernErlaubt); sb.append("\r\n"); getTheClient(request, response).setSMsg(new String(sb)); } else if (command.equals(TheApp.CMD_ZE_MECS_ONLINECHECK_ABL)) { String beleg = request.getParameter("beleg"); String menge = request.getParameter("menge"); if (beleg == null) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Parameter 'beleg' muss angegeben werden"); return null; } if (menge == null) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Parameter 'menge' muss angegeben werden"); return null; } BigDecimal nMenge = new BigDecimal(menge.trim()); beleg = beleg.trim(); if (beleg.length() < 2) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Parameter 'beleg' muss mindestens 2 Zeichen lang sein"); return null; } String status = null; BigDecimal offeneMenge = new BigDecimal(0); boolean ueberliefernErlaubt = true; try { if (beleg.substring(0, 2).equals("$A")) { AuftragDto auftragDto = getAuftragFac().auftragFindByMandantCNrCNr(mandant, beleg.substring(2), theclientDto); status = auftragDto.getAuftragstatusCNr(); } else if (beleg.substring(0, 2).equals("$L")) { LosDto losDto = getFertigungFac().losFindByCNrMandantCNr(beleg.substring(2), mandant); status = losDto.getStatusCNr(); BigDecimal erledigteMenge = getFertigungFac().getErledigteMenge(losDto.getIId(), theclientDto); offeneMenge = losDto.getNLosgroesse().subtract(erledigteMenge); if (losDto.getStuecklisteIId() != null) { StuecklisteDto stkDto = getStuecklisteFac() .stuecklisteFindByPrimaryKey(losDto.getStuecklisteIId(), theclientDto); ueberliefernErlaubt = Helper.short2boolean(stkDto.getBUeberlieferbar()); } } } catch (EJBExceptionLP ex8) { status = "Beleg existiert nicht"; } StringBuffer sb = new StringBuffer(); // Zeile1 sb.append(Helper.fitString2Length(beleg, 40, ' ')); sb.append(Helper.fitString2Length(status, 40, ' ')); sb.append("\r\n"); // Offene Menge 17 stellig // Zeile2 // Zuerst 3 Stellen Fehlernummer: 000= Abliefern moeglich 001= // Status erlaubt kein Abliefern - 002= // Menge der Ablieferung zu gross String fehlercode = ""; String text1 = ""; String text2 = ""; if (status.equals(LocaleFac.STATUS_ERLEDIGT) || status.equals(LocaleFac.STATUS_STORNIERT) || status.equals(LocaleFac.STATUS_ANGELEGT) || status.equals(LocaleFac.STATUS_GESTOPPT)) { fehlercode = "001"; text1 = "Nicht erlaubt!"; text2 = "Status: " + status; } else { if (nMenge.doubleValue() <= offeneMenge.doubleValue()) { // Wenn Abliefermenge kleiner als Offene Menge, dann =OK fehlercode = "000"; text1 = "Ablieferung"; text2 = "erlaubt"; } else { if (ueberliefernErlaubt == false) { fehlercode = "002"; text1 = "Nicht erlaubt!"; DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance(); dfs.setDecimalSeparator('.'); DecimalFormat dFormat = new DecimalFormat("#####0", dfs); text2 = "Nur " + Helper.fitString2LengthAlignRight(dFormat.format(offeneMenge), 6, ' ') + " Stk offen"; } else { fehlercode = "000"; text1 = "Ablieferung"; text2 = "erlaubt"; } } } sb.append(fehlercode); // 37 Leerstellen sb.append(Helper.fitString2Length("", 37, ' ')); // Text1 sb.append(Helper.fitString2Length(text1, 20, ' ')); // Text2 sb.append(Helper.fitString2Length(text2, 20, ' ')); sb.append("\r\n"); getTheClient(request, response).setSMsg(new String(sb)); } else if (command.equals(TheApp.CMD_ZE_MECS_AUSWEISE)) { String fingerprint = request.getParameter("fingerprint"); if (fingerprint != null) { StringBuffer sb = new StringBuffer(); PersonalfingerDto[] personalfingerDtos = getZutrittscontrollerFac().personalfingerFindAll(); for (int i = 0; i < personalfingerDtos.length; i++) { PersonalfingerDto personalfingerDto = personalfingerDtos[i]; String id = personalfingerDto.getIId() + ""; id = Helper.fitString2LengthAlignRight(id, 8, '0'); StringBuffer tmp = new StringBuffer(); // unbedingt nach ausweis sortieren tmp.setLength(0); tmp.append(Helper.fitString2Length(id, 20, ' ')); PersonalDto personalDto = getPersonalFac() .personalFindByPrimaryKey(personalfingerDto.getPersonalIId(), theclientDto); tmp.append(Helper.fitString2LengthAlignRight(personalDto.getCPersonalnr() + "", 5, '0')); // persnr tmp.append(Helper.fitString2Length("", 3, ' ')); // zutrkl String sVorname = personalDto.getPartnerDto().getCName2vornamefirmazeile2(); String sNachname = personalDto.getPartnerDto().getCName1nachnamefirmazeile1(); if (sVorname == null) { sVorname = ""; } tmp.append(Helper.fitString2Length(sVorname + " " + sNachname, 25, ' ')); // name sb.append(tmp).append("\r\n"); } getTheClient(request, response).setSMsg(new String(sb)); } else { // Ausweisnummern holen StringBuffer sb = new StringBuffer(); PersonalDto[] personalDtos = getPersonalFac().personalFindByCAusweisSortiertNachCAusweis(); ParametermandantDto parameterDto = getParameterFac().getMandantparameter(mandant, ParameterFac.KATEGORIE_PERSONAL, ParameterFac.PARAMETER_LEAD_IN_AUSWEISNUMMER_MECS); String leadIn = ""; if (parameterDto.getCWert() != null) { leadIn = parameterDto.getCWert().trim(); } for (int i = 0; i < personalDtos.length; i++) { PersonalDto personalDto = personalDtos[i]; personalDto.setPartnerDto( getPartnerFac().partnerFindByPrimaryKey(personalDto.getPartnerIId(), theclientDto)); StringBuffer tmp = new StringBuffer(); // unbedingt nach ausweis sortieren tmp.setLength(0); tmp.append(Helper.fitString2Length(leadIn + personalDto.getCAusweis(), 20, ' ')); // ausweis tmp.append(Helper.fitString2LengthAlignRight(personalDto.getCPersonalnr() + "", 5, '0')); // persnr tmp.append(Helper.fitString2Length("", 3, ' ')); // zutrkl String sVorname = personalDto.getPartnerDto().getCName2vornamefirmazeile2(); String sNachname = personalDto.getPartnerDto().getCName1nachnamefirmazeile1(); if (sVorname == null) { sVorname = ""; } tmp.append(Helper.fitString2Length(sVorname + " " + sNachname, 25, ' ')); // name sb.append(tmp).append("\r\n"); } getTheClient(request, response).setSMsg(new String(sb)); } } else if (command.equals(TheApp.CMD_ZE_MECS_ERLAUBTETAETIGKEITEN)) { Session session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria liste = session.createCriteria(FLRTaetigkeit.class); liste.add(Expression.eq(ZeiterfassungFac.FLR_TAETIGKEIT_B_BDEBUCHBAR, Helper.boolean2Short(true))); liste.addOrder(Order.asc("c_nr")); List<?> lReisezeiten = liste.list(); Iterator<?> it = lReisezeiten.iterator(); StringBuffer sb = new StringBuffer(); while (it.hasNext()) { FLRTaetigkeit flrTaetigkeit = (FLRTaetigkeit) it.next(); StringBuffer tmp = new StringBuffer(); tmp.setLength(0); tmp.append('$'); tmp.append(Helper.fitString2LengthAlignRight(flrTaetigkeit.getC_nr(), 14, ' ')); // persnr sb.append(tmp).append("\r\n"); } session.close(); getTheClient(request, response).setSMsg(new String(sb)); } else if (command.equals(TheApp.CMD_ZE_MECS_PERSSTAMM)) { // Personalstamm holen StringBuffer sb = new StringBuffer(); // unbedingt nach personalnummer sortieren PersonalDto[] personalDtos = getPersonalFac().personalFindByCAusweisSortiertNachPersonalnr(); for (int i = 0; i < personalDtos.length; i++) { PersonalDto personalDto = personalDtos[i]; personalDto.setPartnerDto( getPartnerFac().partnerFindByPrimaryKey(personalDto.getPartnerIId(), theclientDto)); StringBuffer tmp = new StringBuffer(); tmp.setLength(0); tmp.append(Helper.fitString2LengthAlignRight(personalDto.getCPersonalnr() + "", 5, '0')); // persnr tmp.append(Helper.fitString2Length("", 3, ' ')); // zutrkl String sVorname = personalDto.getPartnerDto().getCName2vornamefirmazeile2(); String sNachname = personalDto.getPartnerDto().getCName1nachnamefirmazeile1(); if (sVorname == null) { sVorname = ""; } tmp.append(Helper.fitString2Length(sVorname + " " + sNachname, 25, ' ')); // name sb.append(tmp).append("\r\n"); } getTheClient(request, response).setSMsg(new String(sb)); } else if (command.equals(TheApp.CMD_ZE_MECS_SALDO)) { String ausweis = ""; try { ausweis = request.getParameter("ausweis"); } catch (Exception e) { getTheClient(request, response).setBResponseIsReady(true); response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Parameter 'ausweis' nicht angegeben"); myLogger.error("doPost; Exception aufgetreten", e); return null; } if (ausweis.startsWith("$P")) { ausweis = ausweis.substring(2); } ausweis = ausweis.trim(); ParametermandantDto parameterDto = getParameterFac().getMandantparameter(mandant, ParameterFac.KATEGORIE_PERSONAL, ParameterFac.PARAMETER_LEAD_IN_AUSWEISNUMMER_MECS); String leadIn = ""; if (parameterDto.getCWert() != null) { leadIn = parameterDto.getCWert().trim(); int iLaenge = leadIn.length(); if (ausweis.length() > iLaenge) { ausweis = ausweis.substring(iLaenge); } } PersonalDto personalDto = getPersonalFac().personalFindByCAusweis(ausweis); personalDto.setPartnerDto( getPartnerFac().partnerFindByPrimaryKey(personalDto.getPartnerIId(), theclientDto)); java.sql.Timestamp ts = new java.sql.Timestamp(System.currentTimeMillis() - 3600000 * 24); ts = com.lp.util.Helper.cutTimestamp(ts); Calendar c = Calendar.getInstance(); c.setTimeInMillis(ts.getTime()); String urlaub = null; try { urlaub = getZeiterfassungsFac().erstelleMonatsAbrechnungFuerBDE(personalDto.getIId(), new Integer(c.get(Calendar.YEAR)), new Integer(c.get(Calendar.MONTH)), false, new java.sql.Date(ts.getTime()), theclientDto, true, false); } catch (EJBExceptionLP ex7) { if (ex7.getCause() instanceof EJBExceptionLP) { EJBExceptionLP e = (EJBExceptionLP) ex7.getCause(); if (e != null && e.getCode() == EJBExceptionLP.FEHLER_PERSONAL_FEHLER_BEI_EINTRITTSDATUM) { getTheClient(request, response) .setSMsg(new String("FEHLER_PERSONAL_FEHLER_BEI_EINTRITTSDATUM")); return getSJSPNext(); } } getTheClient(request, response).setSMsg(new String(ex7.getMessage())); setSJSPNext("bdestation.jsp"); } getTheClient(request, response).setSMsg(urlaub); } else if (command.equals(TheApp.CMD_ZE_MECS_ZEITBUCHEN) || command.equals(TheApp.CMD_ZE_MECS_ZEITBUCHENFINGERPRINT)) { String record = null; if (command.equals(TheApp.CMD_ZE_MECS_ZEITBUCHEN)) { record = request.getParameter("record"); } else { record = request.getParameter("recordfingerprint"); } record = Helper.fitString2Length(record, 200, ' '); String schluesselNr = record.substring(19, 39).trim(); String zeit = record.substring(5, 19); String taetigkeit = record.substring(3, 5); // SP753 String terminal = record.substring(64, 86); // Damit die Sollzeitenueberschreitungspruefeung nicht durchgefuehrt // wird: terminal = "ZT:" + terminal; terminal = terminal.trim(); boolean bAbliefern = false; ArtikelDto artikelDtoTaetigkeit = null; if (record.substring(130, 155).trim().equals("$ABLIEFERN")) { bAbliefern = true; } else { artikelDtoTaetigkeit = getArtikelFac().artikelFindByCNrOhneExc(record.substring(132, 155).trim(), theclientDto); } ZeitdatenDto zeitdatenDto = new ZeitdatenDto(); ZeitdatenDto zeitdatenDtoEnde = new ZeitdatenDto(); zeitdatenDto.setCWowurdegebucht(terminal); zeitdatenDtoEnde.setCWowurdegebucht(terminal); Calendar c = Calendar.getInstance(); c.set(Calendar.YEAR, new Integer(zeit.substring(0, 4)).intValue()); c.set(Calendar.MONTH, new Integer(zeit.substring(4, 6)).intValue() - 1); c.set(Calendar.DAY_OF_MONTH, new Integer(zeit.substring(6, 8)).intValue()); c.set(Calendar.HOUR_OF_DAY, new Integer(zeit.substring(8, 10)).intValue()); c.set(Calendar.MINUTE, new Integer(zeit.substring(10, 12)).intValue()); c.set(Calendar.SECOND, new Integer(zeit.substring(12, 14)).intValue()); zeitdatenDto.setTZeit(new java.sql.Timestamp(c.getTime().getTime())); zeitdatenDtoEnde.setTZeit(new java.sql.Timestamp(c.getTime().getTime() + 1000)); zeitdatenDto.setTAendern(zeitdatenDto.getTZeit()); zeitdatenDtoEnde.setTAendern(zeitdatenDtoEnde.getTZeit()); // Wenn hier NullPointerException, dann kann kein Personal mit // Ausweisnummer gefunden werden Integer personalIId = null; if (schluesselNr.startsWith("$P")) { try { personalIId = getPersonalFac().personalFindByCAusweis(schluesselNr.substring(2)).getIId(); } catch (NullPointerException ex11) { String msg = "Person mit Ausweis " + schluesselNr + " nicht vorhanden. ORIGINAL-Request:" + record; myLogger.error(msg, ex11); response.setStatus(HttpServletResponse.SC_OK); return getSJSPNext(); } } else { if (command.equals(TheApp.CMD_ZE_MECS_ZEITBUCHEN)) { try { personalIId = getPersonalFac().personalFindByCAusweis(schluesselNr).getIId(); } catch (NullPointerException ex11) { String msg = "Person mit Ausweis " + schluesselNr + " nicht vorhanden. ORIGINAL-Request:" + record; myLogger.error(msg, ex11); response.setStatus(HttpServletResponse.SC_OK); return getSJSPNext(); } } else if (command.equals(TheApp.CMD_ZE_MECS_ZEITBUCHENFINGERPRINT)) { Integer i = new Integer(schluesselNr); getZutrittscontrollerFac().personalfingerFindByPrimaryKey(i).getPersonalIId(); personalIId = getZutrittscontrollerFac().personalfingerFindByPrimaryKey(i).getPersonalIId(); } } zeitdatenDto.setPersonalIId(personalIId); zeitdatenDtoEnde.setPersonalIId(personalIId); zeitdatenDtoEnde.setTaetigkeitIId(getZeiterfassungsFac() .taetigkeitFindByCNr(ZeiterfassungFac.TAETIGKEIT_ENDE, theclientDto).getIId()); // Taetigkeiten, die MECS liefert muessen in der Tabelle LP_KEYVALUE // uebersetzt werden (als String) // Bsp: MECSTERMINAL|B1|KOMMT|java.lang.String try { String sTaetigkeit = null; if (schluesselNr.startsWith("$P")) { sTaetigkeit = record.substring(110, 126); Integer taetigkeitIId_Ende = getZeiterfassungsFac() .taetigkeitFindByCNr(ZeiterfassungFac.TAETIGKEIT_ENDE, theclientDto).getIId(); String gutStueck = record.substring(160, 172); String schlechtStueck = record.substring(173, 189); BigDecimal nGutStueck = new BigDecimal(gutStueck.trim()); BigDecimal nSchlechtStueck = new BigDecimal(schlechtStueck.trim()); Integer artikelIId = null; if (artikelDtoTaetigkeit == null) { ParametermandantDto parameterDto = getParameterFac().getMandantparameter(mandant, ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_DEFAULT_ARBEITSZEITARTIKEL); if (parameterDto != null && parameterDto.getCWert() != null && !parameterDto.getCWert().trim().equals("")) { try { artikelIId = getArtikelFac().artikelFindByCNr(parameterDto.getCWert(), theclientDto) .getIId(); } catch (RemoteException ex2) { myLogger.error("Default-Arbeitszeitartikel " + parameterDto.getCWert() + " nicht vorhanden.", ex2); return getSJSPNext(); } } else { myLogger.error( "Default-Arbeitszeitartikel " + parameterDto.getCWert() + " nicht definiert."); return getSJSPNext(); } } else { artikelIId = artikelDtoTaetigkeit.getIId(); } if (sTaetigkeit.startsWith("$A")) { AuftragDto auftragDto = null; try { if (sTaetigkeit.startsWith("$A")) { auftragDto = getAuftragFac().auftragFindByMandantCNrCNr(mandant, sTaetigkeit.substring(2).trim(), theclientDto); } else { auftragDto = getAuftragFac().auftragFindByMandantCNrCNr(mandant, sTaetigkeit.substring(3).trim(), theclientDto); } } catch (RemoteException ex8) { zeitdatenDto.setCBemerkungZuBelegart( "Auftrag " + sTaetigkeit.substring(2).trim() + " konnte nicht gefunden werden"); zeitdatenDto.setTaetigkeitIId(taetigkeitIId_Ende); getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, false, theclientDto); return getSJSPNext(); } // Wenn Auftragsbeginn -> if (sTaetigkeit.startsWith("$A")) { AuftragpositionDto[] auftragpositionDtos = getAuftragpositionFac() .auftragpositionFindByAuftrag(auftragDto.getIId()); if (auftragpositionDtos.length > 0) { zeitdatenDto.setCBelegartnr(LocaleFac.BELEGART_AUFTRAG); zeitdatenDto.setArtikelIId(artikelIId); zeitdatenDto.setIBelegartid(auftragDto.getIId()); zeitdatenDto.setIBelegartpositionid(auftragpositionDtos[0].getIId()); } else { myLogger.error("Buchung von MECS-TERMINAL, Ausweis: " + schluesselNr + ", Auftrag" + sTaetigkeit + " hat keine Positionen."); return getSJSPNext(); } } } else if (sTaetigkeit.startsWith("$EL") || sTaetigkeit.startsWith("$L")) { com.lp.server.fertigung.service.LosDto losDto = null; try { if (sTaetigkeit.startsWith("$L")) { losDto = getFertigungFac().losFindByCNrMandantCNr( sTaetigkeit.substring(2).trim(), mandant); } else { losDto = getFertigungFac().losFindByCNrMandantCNr( sTaetigkeit.substring(3).trim(), mandant); } } catch (EJBExceptionLP ex10) { zeitdatenDto.setCBemerkungZuBelegart( "Los " + sTaetigkeit.substring(2).trim() + " konnte nicht gefunden werden"); zeitdatenDto.setTaetigkeitIId(taetigkeitIId_Ende); getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, false, theclientDto); return getSJSPNext(); } if (bAbliefern == true) { LosablieferungDto losablieferungDto = new LosablieferungDto(); losablieferungDto.setLosIId(losDto.getIId()); String menge = record.substring(155, 170); BigDecimal nMenge = new BigDecimal(menge.trim()); losablieferungDto.setNMenge(nMenge); losablieferungDto.setTAendern(zeitdatenDto.getTZeit()); if (nMenge.doubleValue() > 0) { // lt. FM BigDecimal bdBisherErledigt = getFertigungFac().getErledigteMenge(losDto.getIId(), theclientDto); if (bdBisherErledigt.add(nMenge).doubleValue() > losDto.getNLosgroesse() .doubleValue()) { getFertigungFac().aendereLosgroesse(losDto.getIId(), bdBisherErledigt.add(nMenge).intValue(), false, theclientDto); // SP933 losDto.setNLosgroesse(bdBisherErledigt.add(nMenge)); } try { getFertigungFac().bucheMaterialAufLos(losDto, nMenge, false, false, true, theclientDto, null, false); } catch (Exception e1) { // Terminal darf keinen Fehler bekommen } getFertigungFac().createLosablieferungFuerTerminalOhnePreisberechnung( losablieferungDto, theclientDto, false); try { getFertigungFac().aktualisiereNachtraeglichPreiseAllerLosablieferungen( losDto.getIId(), theclientDto, true); } catch (Exception e) { // PREISBERECHNUNG FEHLGESCHLAGEN myLogger.error("Preisberechnung der Ablieferungen f\u00FCr Los " + losDto.getCNr() + " fehlgeschlagen. Bitte manuell ausfuehren", e); } } // PJ17748 ParametermandantDto parameterAblieferungBuchtEndeDto = getParameterFac() .getMandantparameter(mandant, ParameterFac.KATEGORIE_FERTIGUNG, ParameterFac.PARAMETER_ABLIEFERUNG_BUCHT_ENDE); Boolean bAblieferungBuchtEndeDto = (Boolean) parameterAblieferungBuchtEndeDto .getCWertAsObject(); if (bAblieferungBuchtEndeDto == true) { zeitdatenDto.setTaetigkeitIId(taetigkeitIId_Ende); zeitdatenDto.setCBelegartnr(null); zeitdatenDto.setArtikelIId(null); zeitdatenDto.setIBelegartid(null); zeitdatenDto.setIBelegartpositionid(null); Integer zeitdatenIId = getZeiterfassungsFac().createZeitdaten(zeitdatenDto, false, false, false, theclientDto); // PJ17797 if (nMenge.doubleValue() > 0) { if (getMandantFac().darfAnwenderAufZusatzfunktionZugreifen( MandantFac.ZUSATZFUNKTION_STUECKRUECKMELDUNG, theclientDto)) { Integer lossollarbeitsplanIId = null; LossollarbeitsplanDto[] sollDtos = getFertigungFac() .lossollarbeitsplanFindByLosIId(losDto.getIId()); if (sollDtos.length > 0) { lossollarbeitsplanIId = sollDtos[sollDtos.length - 1].getIId(); } else { lossollarbeitsplanIId = getFertigungFac() .defaultArbeitszeitartikelErstellen(losDto, theclientDto); } LosgutschlechtDto losgutschlechtDto = new LosgutschlechtDto(); losgutschlechtDto.setZeitdatenIId(zeitdatenIId); losgutschlechtDto.setLossollarbeitsplanIId(lossollarbeitsplanIId); losgutschlechtDto.setNGut(nMenge); losgutschlechtDto.setNSchlecht(new BigDecimal(0)); losgutschlechtDto.setNInarbeit(new BigDecimal(0)); getFertigungFac().createLosgutschlecht(losgutschlechtDto, theclientDto); } } } return getSJSPNext(); } // Wenn Auftragsbeginn -> if (sTaetigkeit.startsWith("$L")) { zeitdatenDto.setCBelegartnr(LocaleFac.BELEGART_LOS); zeitdatenDto.setArtikelIId(artikelIId); zeitdatenDto.setIBelegartid(losDto.getIId()); LossollarbeitsplanDto[] sollDtos = getFertigungFac() .lossollarbeitsplanFindByLosIIdArtikelIIdTaetigkeit(losDto.getIId(), artikelIId); if (sollDtos.length > 0) { zeitdatenDto.setIBelegartpositionid(sollDtos[0].getIId()); } } else { // Hole letzten begonnenen Auftrag und hinterlege // gut/schlechtstueck Session session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria liste = session.createCriteria(FLRZeitdaten.class); liste.add(Expression.eq(ZeiterfassungFac.FLR_ZEITDATEN_PERSONAL_I_ID, personalIId)); /* * liste.add(Expression.eq(ZeiterfassungFac. * FLR_ZEITDATEN_C_BELEGARTNR , * LocaleFac.BELEGART_LOS)); liste.add(Expression.eq * (ZeiterfassungFac.FLR_ZEITDATEN_I_BELEGARTID, * losDto.getIId())); */ liste.add(Expression.gt(ZeiterfassungFac.FLR_ZEITDATEN_T_ZEIT, Helper.cutTimestamp(zeitdatenDto.getTZeit()))); liste.addOrder(Order.desc(ZeiterfassungFac.FLR_ZEITDATEN_T_ZEIT)); // liste.setMaxResults(1); List<?> lReisezeiten = liste.list(); Iterator<?> it = lReisezeiten.iterator(); zeitdatenDto.setCBelegartnr(LocaleFac.BELEGART_LOS); zeitdatenDto.setArtikelIId(artikelIId); zeitdatenDto.setIBelegartid(losDto.getIId()); ZeitdatenDto letzterAuftrag = null; while (it.hasNext()) { FLRZeitdaten flrLetzerAuftrag = (FLRZeitdaten) it.next(); if (flrLetzerAuftrag.getC_belegartnr() != null && flrLetzerAuftrag.getI_belegartid() != null) { if (flrLetzerAuftrag.getC_belegartnr().equals(zeitdatenDto.getCBelegartnr()) && flrLetzerAuftrag.getI_belegartid() .equals(zeitdatenDto.getIBelegartid())) { letzterAuftrag = getZeiterfassungsFac().zeitdatenFindByPrimaryKey( flrLetzerAuftrag.getI_id(), theclientDto); break; } } else if (flrLetzerAuftrag.getTaetigkeit_i_id() != null && flrLetzerAuftrag.getTaetigkeit_i_id().equals(taetigkeitIId_Ende)) { break; } } if (letzterAuftrag != null) { // Hier eintragen ZeitdatenDto auftragsbeginn = getZeiterfassungsFac() .zeitdatenFindByPrimaryKey(letzterAuftrag.getIId(), theclientDto); // auftragsbeginn.setNGut(nGutStueck); // auftragsbeginn.setNSchlecht(nSchlechtStueck); getZeiterfassungsFac().updateZeitdaten(auftragsbeginn, theclientDto); // und buche ENDE zeitdatenDto = zeitdatenDtoEnde; } else { zeitdatenDto.setCBelegartnr(LocaleFac.BELEGART_LOS); zeitdatenDto.setArtikelIId(artikelIId); zeitdatenDto.setIBelegartid(losDto.getIId()); // zeitdatenDto.setNGut(nGutStueck); // zeitdatenDto.setNSchlecht(nSchlechtStueck); getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, false, theclientDto); zeitdatenDto = zeitdatenDtoEnde; } session.close(); /* * if (lReisezeiten.size() > 0) { FLRZeitdaten * flrZeitdaten = (FLRZeitdaten) * lReisezeiten.iterator().next(); * * ZeitdatenDto losbeginn = getZeiterfassungsFac(). * zeitdatenFindByPrimaryKey(flrZeitdaten.getI_id(), * cNrUser); * * losbeginn.setNGut(nGutStueck); * losbeginn.setNSchlecht(nSchlechtStueck); * getZeiterfassungsFac().updateZeitdaten(losbeginn, * cNrUser); //und buche ENDE zeitdatenDto = * zeitdatenDtoEnde; } else { * zeitdatenDto.setCBelegartnr * (LocaleFac.BELEGART_LOS); * zeitdatenDto.setArtikelIId(artikelIId); * zeitdatenDto.setIBelegartid(losDto.getIId()); * zeitdatenDto.setNGut(nGutStueck); * zeitdatenDto.setNSchlecht(nSchlechtStueck); * getZeiterfassungsFac * ().createZeitdaten(zeitdatenDto, true, true, * cNrUser); zeitdatenDto = zeitdatenDtoEnde; } * * session.close(); */ } } else { zeitdatenDto.setTaetigkeitIId(getZeiterfassungsFac().taetigkeitFindByCNr( Helper.fitString2Length(sTaetigkeit.substring(1), 15, ' '), theclientDto).getIId()); } } else { sTaetigkeit = getSystemServicesFac() .keyvalueFindByPrimaryKey(SystemServicesFac.KEYVALUE_MECSTERMINAL, taetigkeit) .getCValue(); if (sTaetigkeit != null && !sTaetigkeit.equals(ZeiterfassungFac.TAETIGKEIT_REISE.trim())) { zeitdatenDto.setTaetigkeitIId(getZeiterfassungsFac() .taetigkeitFindByCNr(Helper.fitString2Length(sTaetigkeit, 15, ' '), theclientDto) .getIId()); } } // Resezeiten wenn Taetigkeit REISE if (sTaetigkeit != null && sTaetigkeit.equals(ZeiterfassungFac.TAETIGKEIT_REISE.trim())) { ReiseDto reiseDto = new ReiseDto(); reiseDto.setPersonalIId(personalIId); // Letzte Reise von HEUTE holen // Heute 00:00 Uhr Calendar cTemp = Calendar.getInstance(); cTemp.setTimeInMillis(zeitdatenDto.getTZeit().getTime()); cTemp.set(Calendar.HOUR_OF_DAY, 0); cTemp.set(Calendar.MINUTE, 0); cTemp.set(Calendar.SECOND, 0); cTemp.set(Calendar.MILLISECOND, 0); Session sessReise = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria reisezeiten = sessReise.createCriteria(FLRReise.class); reisezeiten.add(Expression.eq(ZeiterfassungFac.FLR_REISE_PERSONAL_I_ID, personalIId)); reisezeiten.add(Expression.ge(ZeiterfassungFac.FLR_REISE_T_ZEIT, new Timestamp(cTemp.getTimeInMillis()))); reisezeiten.add(Expression.lt(ZeiterfassungFac.FLR_REISE_T_ZEIT, zeitdatenDto.getTZeit())); reisezeiten.addOrder(Order.desc(ZeiterfassungFac.FLR_REISE_T_ZEIT)); reisezeiten.setMaxResults(1); List<?> lReisezeiten = reisezeiten.list(); if (lReisezeiten.size() == 0) { reiseDto.setBBeginn(Helper.boolean2Short(true)); } else { FLRReise flrReise = (FLRReise) lReisezeiten.get(0); if (Helper.short2boolean(flrReise.getB_beginn()) == true) { reiseDto.setBBeginn(Helper.boolean2Short(false)); } else { reiseDto.setBBeginn(Helper.boolean2Short(true)); } } reiseDto.setTZeit(zeitdatenDto.getTZeit()); Integer partnerMandant = getMandantFac().mandantFindByPrimaryKey(mandant, theclientDto) .getPartnerIId(); PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(partnerMandant, theclientDto); if (partnerDto.getLandplzortIId() == null) { throw new Exception("Mandant hat kein Land hinterlegt"); } DiaetenDto[] dtos = getZeiterfassungsFac() .diaetenFindByLandIId(partnerDto.getLandplzortDto().getIlandID()); if (dtos.length == 0) { // Einen anlegen DiaetenDto dto = new DiaetenDto(); dto.setCBez(partnerDto.getLandplzortDto().getLandDto().getCName()); dto.setLandIId(partnerDto.getLandplzortDto().getIlandID()); reiseDto.setDiaetenIId(getZeiterfassungsFac().createDiaeten(dto)); } else { reiseDto.setDiaetenIId(dtos[0].getIId()); } getZeiterfassungsFac().createReise(reiseDto, theclientDto); response.setStatus(HttpServletResponse.SC_OK); response.flushBuffer(); getTheClient(request, response).setBResponseIsReady(true); return getSJSPNext(); } } catch (Exception ex3) { ex3.printStackTrace(); // lt. FM darf an das MECS-Terminal nur Status=200 // zurueckgegeben werden response.setStatus(HttpServletResponse.SC_OK); return getSJSPNext(); } getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, false, theclientDto); response.setStatus(HttpServletResponse.SC_OK); response.flushBuffer(); getTheClient(request, response).setBResponseIsReady(true); } else if (command.equals(TheApp.CMD_ZE_QUICKZE)) { } else if (command.equals(TheApp.CMD_ZE_RECHNERSTART1)) { int i = 0; } else if (command.equals(TheApp.CMD_ZE_QUICKZEITERFASSUNG)) { if (getTheClient(request, response).getSMsg() == null) { getTheClient(request, response).setSMsg(""); } String username = getCookieValue("anmeldename", request); String password = getCookieValue("pass", request); if (localeCookie != null && localeCookie.length() > 3) { localeLogon = new Locale(localeCookie.substring(0, 2), localeCookie.substring(2, 4)); } if (username == null || password == null) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Es wurde kein Benutzername oder Kennwort angegeben. Bitte verwenden Sie http://?????cmd=quickze"); } try { theclientDto = getLogonFac().logon(Helper.getFullUsername(username), Helper.getMD5Hash((username + password).toCharArray()), localeLogon, null, null, new Timestamp(System.currentTimeMillis())); } catch (EJBExceptionLP ex12) { int code = ex12.getCode(); if (code == EJBExceptionLP.FEHLER_BEI_FINDBYPRIMARYKEY) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Benutzername '" + username + "' konnte im System nicht gefunden werden"); } else if (code == EJBExceptionLP.FEHLER_FALSCHES_KENNWORT) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Kennwort f\u00FCr Benutzername '" + username + "' ist falsch."); } else if (code == EJBExceptionLP.FEHLER_BENUTZER_IST_GESPERRT) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Benutzername '" + username + "' ist gesperrt."); } else if (code == EJBExceptionLP.FEHLER_BENUTZER_IST_NICHT_MEHR_GUELTIG) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Benutzername '" + username + "' ist nicht mehr g\u00FCltig."); } else if (code == EJBExceptionLP.FEHLER_BENUTZER_DARF_SICH_BEI_DIESEM_MANDANTEN_NICHT_ANMELDEN) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Benutzername '" + username + "' darf sich bei dem Mandanten nicht anmelden."); } else if (code == EJBExceptionLP.FEHLER_BENUTZER_KEIN_EINTRAG_IN_BENUTZERMANDANT) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Kein Eintrag in Benutzermandant f\u00FCr Benutzername '" + username + "'."); } else if (ex12.getCode() == EJBExceptionLP.FEHLER_MAXIMALE_BENUTZERANZAHL_UEBERSCHRITTEN) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Maximale Benutzeranzahl \u00FCberschritten '" + username + "'."); return null; } else if (code == EJBExceptionLP.FEHLER_BENUTZER_DARF_SICH_IN_DIESER_SPRACHE_NICHT_ANMELDEN) { ArrayList<?> al = ((EJBExceptionLP) ex12.getCause()).getAlInfoForTheClient(); String zusatz = ""; if (al.size() > 0 && al.get(0) instanceof Locale) { Locale loc = (Locale) al.get(0); zusatz = "(" + loc.getDisplayLanguage() + "|" + loc.getDisplayCountry() + ")"; } response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Benutzer '" + username + "' darf sich in '" + zusatz + "' nicht anmelden."); } return null; } PersonalDto personalDto = getPersonalFac().personalFindByPrimaryKey(theclientDto.getIDPersonal(), theclientDto); personalDto.setPartnerDto( getPartnerFac().partnerFindByPrimaryKey(personalDto.getPartnerIId(), theclientDto)); HashMap<String, Object> hmData = new HashMap<String, Object>(); TextDto textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("quickze.sondertaetigkeit", theclientDto.getMandant(), theclientDto.getLocUiAsString()); if (textDto != null) { hmData.put("bezeichnung_sondertaetigkeit", textDto.getCText()); } else { hmData.put("bezeichnung_sondertaetigkeit", "Sondert\u00E4tigkeit"); } // Belegarten holen Map<String, String> b = getZeiterfassungsFac().getBebuchbareBelegarten(theclientDto); hmData.put("belegarten", b); String firstBelegart = (String) b.keySet().iterator().next(); String belegart = null; if (request.getParameter("belegart") == null) { belegart = firstBelegart; } else { belegart = request.getParameter("belegart"); } if (belegart.equals(LocaleFac.BELEGART_AUFTRAG)) { textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("quickze.offenerauftrag", theclientDto.getMandant(), theclientDto.getLocUiAsString()); } else if (belegart.equals(LocaleFac.BELEGART_LOS)) { textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("quickze.offeneslos", theclientDto.getMandant(), theclientDto.getLocUiAsString()); } else if (belegart.equals(LocaleFac.BELEGART_ANGEBOT)) { textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("quickze.offenesangebot", theclientDto.getMandant(), theclientDto.getLocUiAsString()); } else if (belegart.equals(LocaleFac.BELEGART_PROJEKT)) { textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("quickze.offenesprojekt", theclientDto.getMandant(), theclientDto.getLocUiAsString()); } if (textDto != null) { hmData.put("bezeichnung_offenerauftrag", textDto.getCText()); } else { hmData.put("bezeichnung_offenerauftrag", "Offener Beleg"); } textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("quickze.taetigkeit", theclientDto.getMandant(), theclientDto.getLocUiAsString()); if (textDto != null) { hmData.put("bezeichnung_taetigkeit", textDto.getCText()); } else { hmData.put("bezeichnung_taetigkeit", "T\u00E4tigkeit"); } textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("quickze.kunde", theclientDto.getMandant(), theclientDto.getLocUiAsString()); if (textDto != null) { hmData.put("bezeichnung_kunde", textDto.getCText()); } else { hmData.put("bezeichnung_kunde", "Kunde"); } textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("quickze.belegart", theclientDto.getMandant(), theclientDto.getLocUiAsString()); if (textDto != null) { hmData.put("bezeichnung_belegart", textDto.getCText()); } else { hmData.put("bezeichnung_belegart", "Belegart"); } textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("quickze.bemerkung", theclientDto.getMandant(), theclientDto.getLocUiAsString()); if (textDto != null) { hmData.put("bezeichnung_bemerkung", textDto.getCText()); } else { hmData.put("bezeichnung_bemerkung", "Bemerkung"); } hmData.put("locale", Helper.locale2String(localeLogon).trim()); hmData.put("mandant", mandant); hmData.put("person", personalDto.getPartnerDto().formatAnrede()); // Kunden mit offenen Auftraegen holen Session session = FLRSessionFactory.getFactory().openSession(); String sQuery = ""; if (belegart.equals(LocaleFac.BELEGART_AUFTRAG)) { sQuery = "SELECT flrkunde.flrpartner.c_name1nachnamefirmazeile1, flrkunde.flrpartner.c_name2vornamefirmazeile2, flrkunde.flrpartner.i_id " + " FROM FLRAuftrag AS auftrag WHERE (auftrag.auftragstatus_c_nr='" + LocaleFac.STATUS_OFFEN + "' OR auftrag.auftragstatus_c_nr='" + LocaleFac.STATUS_TEILERLEDIGT + "') AND auftrag.mandant_c_nr='" + theclientDto.getMandant() + "'" + " GROUP BY flrkunde.flrpartner.c_name1nachnamefirmazeile1, flrkunde.flrpartner.c_name2vornamefirmazeile2, flrkunde.flrpartner.i_id ORDER BY flrkunde.flrpartner.c_name1nachnamefirmazeile1 ASC"; } else if (belegart.equals(LocaleFac.BELEGART_ANGEBOT)) { sQuery = "SELECT flrkunde.flrpartner.c_name1nachnamefirmazeile1, flrkunde.flrpartner.c_name2vornamefirmazeile2, flrkunde.flrpartner.i_id " + " FROM FLRAngebot AS angebot WHERE (angebot.angebotstatus_c_nr='" + LocaleFac.STATUS_OFFEN + "') AND angebot.mandant_c_nr='" + theclientDto.getMandant() + "'" + " GROUP BY flrkunde.flrpartner.c_name1nachnamefirmazeile1, flrkunde.flrpartner.c_name2vornamefirmazeile2, flrkunde.flrpartner.i_id ORDER BY flrkunde.flrpartner.c_name1nachnamefirmazeile1 ASC"; } else if (belegart.equals(LocaleFac.BELEGART_PROJEKT)) { sQuery = "SELECT flrpartner.c_name1nachnamefirmazeile1, flrpartner.c_name2vornamefirmazeile2, flrpartner.i_id " + " FROM FLRProjekt AS projekt WHERE projekt.status_c_nr<>'" + ProjektServiceFac.PROJEKT_STATUS_STORNIERT + "' AND projekt.t_erledigungsdatum IS NULL AND projekt.mandant_c_nr='" + theclientDto.getMandant() + "'" + " GROUP BY flrpartner.c_name1nachnamefirmazeile1, flrpartner.c_name2vornamefirmazeile2, flrpartner.i_id ORDER BY flrpartner.c_name1nachnamefirmazeile1 ASC"; } LinkedHashMap<Object, Object> tmKunden = new LinkedHashMap<Object, Object>(); Integer firstKunde = null; if (!belegart.equals(LocaleFac.BELEGART_LOS)) { Query kunden = session.createQuery(sQuery); List<?> resultList = kunden.list(); Iterator<?> resultListIterator = resultList.iterator(); int row = 0; while (resultListIterator.hasNext()) { Object o[] = (Object[]) resultListIterator.next(); if (row == 0) { firstKunde = (Integer) o[2]; } if (o[1] == null) { tmKunden.put(o[2], o[0]); } else { tmKunden.put(o[2], o[0] + " " + o[1]); } row++; } session.close(); } else { sQuery = "SELECT los " + " FROM FLRLosReport AS los WHERE (los.status_c_nr='" + LocaleFac.STATUS_AUSGEGEBEN + "' OR los.status_c_nr='" + LocaleFac.STATUS_IN_PRODUKTION + "' OR los.status_c_nr='" + LocaleFac.STATUS_TEILERLEDIGT + "') AND los.mandant_c_nr='" + theclientDto.getMandant() + "' AND ( los.flrauftrag IS NOT NULL OR los.flrkunde IS NOT NULL) "; Query kunden = session.createQuery(sQuery); List<?> resultList = kunden.list(); Iterator<?> resultListIterator = resultList.iterator(); int row = 0; while (resultListIterator.hasNext()) { FLRLosReport los = (FLRLosReport) resultListIterator.next(); Integer partnerIId = null; String kundenname = ""; if (los.getFlrauftrag() != null) { partnerIId = los.getFlrauftrag().getFlrkunde().getFlrpartner().getI_id(); kundenname += los.getFlrauftrag().getFlrkunde().getFlrpartner() .getC_name1nachnamefirmazeile1(); if (los.getFlrauftrag().getFlrkunde().getFlrpartner() .getC_name2vornamefirmazeile2() != null) { kundenname += " " + los.getFlrauftrag().getFlrkunde().getFlrpartner() .getC_name2vornamefirmazeile2(); } } else { partnerIId = los.getFlrkunde().getFlrpartner().getI_id(); kundenname += los.getFlrkunde().getFlrpartner().getC_name1nachnamefirmazeile1(); if (los.getFlrkunde().getFlrpartner().getC_name2vornamefirmazeile2() != null) { kundenname += " " + los.getFlrkunde().getFlrpartner().getC_name2vornamefirmazeile2(); } } if (row == 0) { firstKunde = partnerIId; } if (!tmKunden.containsKey(partnerIId)) { tmKunden.put(partnerIId, kundenname); } row++; } tmKunden = (LinkedHashMap) Helper.sortByValue(tmKunden); // leeren Kunden einfuegen tmKunden.put("", "--KEIN--"); session.close(); } hmData.put("kunden", tmKunden); // Sondertaetigkeiten holen Map<Integer, String> m = getZeiterfassungsFac() .getAllSprSondertaetigkeitenNurBDEBuchbar(theclientDto.getLocUiAsString()); hmData.put("taetigkeiten", m); // Kunden holen Integer kunde = null; if (request.getParameter("kunde") == null) { kunde = firstKunde; } else { if (!request.getParameter("kunde").equals("")) { if (!request.getParameter("kunde").equals(" ")) { if (!request.getParameter("kunde").trim().equals("null")) { kunde = new Integer(request.getParameter("kunde").trim()); } } } } hmData.put("selectedbelegart", belegart); session = FLRSessionFactory.getFactory().openSession(); if (belegart.equals(LocaleFac.BELEGART_AUFTRAG)) { sQuery = "SELECT auftrag.i_id, auftrag.c_nr, auftrag.c_bez, auftrag.t_liefertermin, auftrag.flrkunde.flrpartner.i_id " + " FROM FLRAuftrag AS auftrag WHERE (auftrag.auftragstatus_c_nr='" + LocaleFac.STATUS_OFFEN + "' OR auftrag.auftragstatus_c_nr='" + LocaleFac.STATUS_TEILERLEDIGT + "') AND auftrag.flrkunde.flrpartner.i_id=" + kunde + " AND auftrag.b_versteckt=0 ORDER BY auftrag.c_nr ASC"; } else if (belegart.equals(LocaleFac.BELEGART_LOS)) { sQuery = "SELECT los.i_id, los.c_nr, los.c_projekt, los.t_produktionsende, coalesce(auftragpartner.i_id,kundepartner.i_id) " + " FROM FLRLosReport AS los LEFT OUTER JOIN los.flrauftrag.flrkunde.flrpartner as auftragpartner LEFT OUTER JOIN los.flrkunde.flrpartner as kundepartner WHERE (los.status_c_nr='" + LocaleFac.STATUS_AUSGEGEBEN + "' OR los.status_c_nr='" + LocaleFac.STATUS_IN_PRODUKTION + "' OR los.status_c_nr='" + LocaleFac.STATUS_TEILERLEDIGT + "') "; if (kunde != null) { sQuery += " AND ( auftragpartner.i_id=" + kunde + " OR kundepartner.i_id=" + kunde + ")"; } else { sQuery += " AND ( auftragpartner.i_id IS NULL AND kundepartner.i_id IS NULL)"; } sQuery += " ORDER BY los.c_nr ASC"; } else if (belegart.equals(LocaleFac.BELEGART_ANGEBOT)) { sQuery = "SELECT angebot.i_id, angebot.c_nr, angebot.c_bez, angebot.t_realisierungstermin, angebot.flrkunde.flrpartner.i_id " + " FROM FLRAngebot AS angebot WHERE angebot.angebotstatus_c_nr='" + LocaleFac.STATUS_OFFEN + "' AND angebot.flrkunde.flrpartner.i_id=" + kunde + " ORDER BY angebot.c_nr ASC"; } else if (belegart.equals(LocaleFac.BELEGART_PROJEKT)) { sQuery = "SELECT projekt.i_id, projekt.c_nr, projekt.c_titel, projekt.t_zielwunschdatum, projekt.partner_i_id " + " FROM FLRProjekt AS projekt WHERE projekt.status_c_nr<>'" + ProjektServiceFac.PROJEKT_STATUS_STORNIERT + "' AND projekt.t_erledigungsdatum IS NULL AND projekt.partner_i_id=" + kunde + " ORDER BY projekt.c_nr ASC"; } Query auftraege = session.createQuery(sQuery); List<?> resultList = auftraege.list(); Iterator resultListIterator = resultList.iterator(); LinkedHashMap<Object, Object> tmAuftraege = new LinkedHashMap<Object, Object>(); Object partnerIId = null; String selectedAuftragId = null; while (resultListIterator.hasNext()) { Object o[] = (Object[]) resultListIterator.next(); partnerIId = (Integer) o[4]; if (o[2] == null) { tmAuftraege.put(o[0], o[1]); } else { tmAuftraege.put(o[0], o[1] + " " + o[2]); } if (selectedAuftragId == null) { selectedAuftragId = o[0].toString(); } } session.close(); hmData.put("auftraege", tmAuftraege); hmData.put("selectedkunde", partnerIId); if (request.getParameter("auftrag") != null && request.getParameter("auftrag").length() > 0) { selectedAuftragId = request.getParameter("auftrag"); } // Artikel zu Auftrag holen session = FLRSessionFactory.getFactory().openSession(); if (belegart.equals(LocaleFac.BELEGART_AUFTRAG)) { sQuery = "SELECT a.i_id, a.flrartikel.i_id FROM FLRAuftragposition AS a WHERE a.flrauftrag.i_id=" + selectedAuftragId + " AND a.flrartikel.artikelart_c_nr='" + ArtikelFac.ARTIKELART_ARBEITSZEIT + "'"; } else if (belegart.equals(LocaleFac.BELEGART_LOS)) { sQuery = "SELECT a.i_id, a.flrartikel.i_id FROM FLRLossollarbeitsplan AS a WHERE a.los_i_id=" + selectedAuftragId + " AND a.flrartikel.artikelart_c_nr='" + ArtikelFac.ARTIKELART_ARBEITSZEIT + "'"; } else if (belegart.equals(LocaleFac.BELEGART_ANGEBOT)) { sQuery = "SELECT a.i_id, a.flrartikel.i_id FROM FLRAngebotposition AS a WHERE a.flrangebot.i_id=" + selectedAuftragId + " AND a.flrartikel.artikelart_c_nr='" + ArtikelFac.ARTIKELART_ARBEITSZEIT + "'"; } LinkedHashMap<Object, Object> tmArtikel = new LinkedHashMap<Object, Object>(); if (!belegart.equals(LocaleFac.BELEGART_PROJEKT)) { Query artikelListe = session.createQuery(sQuery); resultList = artikelListe.list(); resultListIterator = resultList.iterator(); if (resultList.size() > 0) { tmArtikel.put(-1, " - - - - - - Beleg - - - - - -"); } while (resultListIterator.hasNext()) { Object[] zeile = (Object[]) resultListIterator.next(); Integer artikelIId = (Integer) zeile[1]; String sollIst = ""; if (belegart.equals(LocaleFac.BELEGART_AUFTRAG)) { BigDecimal bdSoll = getAuftragpositionFac() .auftragpositionFindByPrimaryKey((Integer) zeile[0]).getNMenge(); sollIst = "; Soll: " + Helper.formatZahl(bdSoll, 2, theclientDto.getLocUi()); Double dIst; try { boolean bZuvieleZeitbuchungen = getZeiterfassungsFac() .sindZuvieleZeitdatenEinesBelegesVorhanden(belegart, new Integer(selectedAuftragId), theclientDto); if (bZuvieleZeitbuchungen == false) { dIst = getZeiterfassungsFac().getSummeZeitenEinesBeleges(belegart, new Integer(selectedAuftragId), (Integer) zeile[0], null, null, null, theclientDto); sollIst += " Ist: " + Helper.formatZahl(dIst, 2, theclientDto.getLocUi()); } } catch (Exception e) { sollIst += " Ist: ERR"; } } String artikel = getArtikelFac().artikelFindByPrimaryKey(artikelIId, theclientDto) .formatArtikelbezeichnung() + sollIst; if (!tmArtikel.containsKey(artikelIId)) { tmArtikel.put(artikelIId, artikel); } } session.close(); } // Artikel des Auftrags + Artikel aus Personalverfuegbarkeit holen if (selectedAuftragId != null) { PersonalverfuegbarkeitDto[] personalverfuegbarkeitDtos = getPersonalFac() .personalverfuegbarkeitFindByPersonalIId(personalDto.getIId()); if (personalverfuegbarkeitDtos.length > 0) { tmArtikel.put(-2, " - - - Verf\u00FCgbarkeit - - - "); } for (int i = 0; i < personalverfuegbarkeitDtos.length; i++) { PersonalverfuegbarkeitDto v = personalverfuegbarkeitDtos[i]; String artikel = getArtikelFac().artikelFindByPrimaryKey(v.getArtikelIId(), theclientDto) .formatArtikelbezeichnung(); tmArtikel.put(v.getArtikelIId(), artikel); } hmData.put("selectedauftrag", selectedAuftragId); } ParametermandantDto parameterDtoDefaultarbeitszeit = getParameterFac().getMandantparameter(mandant, ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_DEFAULT_ARBEITSZEITARTIKEL); if (parameterDtoDefaultarbeitszeit != null && parameterDtoDefaultarbeitszeit.getCWert() != null && !parameterDtoDefaultarbeitszeit.getCWert().trim().equals("")) { ArtikelDto artikelDtoDefaultArbeiztszeit = getArtikelFac() .artikelFindByCNr(parameterDtoDefaultarbeitszeit.getCWert(), theclientDto); tmArtikel.put(-3, " - - - Default-Arbeitszeitartikel - - -"); tmArtikel.put(artikelDtoDefaultArbeiztszeit.getIId(), artikelDtoDefaultArbeiztszeit.formatArtikelbezeichnung()); } hmData.put("artikel", tmArtikel); // Zeitbuchen String bucheauftrag = request.getParameter("bucheauftrag"); String buchesondertaetigkeit = request.getParameter("buchesondertaetigkeit"); // Zeit buchen ZeitdatenDto zeitdatenDto = new ZeitdatenDto(); zeitdatenDto.setPersonalIId(personalDto.getIId()); Timestamp tZeit = new Timestamp(System.currentTimeMillis()); zeitdatenDto.setCWowurdegebucht("Quick-ZE " + request.getRemoteHost()); String meldung = ""; zeitdatenDto.setTZeit(tZeit); String bemerkung = request.getParameter("bemerkung"); zeitdatenDto.setCBemerkungZuBelegart(bemerkung); if (bucheauftrag != null && bucheauftrag.length() > 0) { if (request.getParameter("artikel") != null) { Integer artikelId = new Integer(request.getParameter("artikel")); if (artikelId > 0) { Integer auftragIId = new Integer(selectedAuftragId.trim()); String s = "Auf "; if (kunde != null) { PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(kunde, theclientDto); s += partnerDto.formatFixName1Name2() + ", "; } if (belegart.equals(LocaleFac.BELEGART_AUFTRAG)) { textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("quickze.auftrag", theclientDto.getMandant(), theclientDto.getLocUiAsString()); if (textDto != null) { s += textDto.getCText() + " "; } else { s += "Auftrag "; } com.lp.server.auftrag.service.AuftragDto auftragDto = getAuftragFac() .auftragFindByPrimaryKey(auftragIId); s += auftragDto.getCNr(); if (auftragDto.getCBezProjektbezeichnung() != null) { s += " " + auftragDto.getCBezProjektbezeichnung(); } com.lp.server.auftrag.service.AuftragpositionDto[] auftragpositionDtos = getAuftragpositionFac() .auftragpositionFindByAuftrag(auftragIId); if (auftragpositionDtos.length > 0) { zeitdatenDto.setIBelegartpositionid(auftragpositionDtos[0].getIId()); } } else if (belegart.equals(LocaleFac.BELEGART_ANGEBOT)) { textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("angb.angebot", theclientDto.getMandant(), theclientDto.getLocUiAsString()); if (textDto != null) { s += textDto.getCText() + " "; } else { s += "Angebot "; } com.lp.server.angebot.service.AngebotDto auftragDto = getAngebotFac() .angebotFindByPrimaryKey(auftragIId, theclientDto); s += auftragDto.getCNr(); if (auftragDto.getCBez() != null) { s += " " + auftragDto.getCBez(); } } else if (belegart.equals(LocaleFac.BELEGART_PROJEKT)) { textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc( "lp.projekt.modulname", theclientDto.getMandant(), theclientDto.getLocUiAsString()); if (textDto != null) { s += textDto.getCText() + " "; } else { s += "Projekt "; } com.lp.server.projekt.service.ProjektDto auftragDto = getProjektFac() .projektFindByPrimaryKey(auftragIId); s += auftragDto.getCNr(); if (auftragDto.getCTitel() != null) { s += " " + auftragDto.getCTitel(); } } else if (belegart.equals(LocaleFac.BELEGART_LOS)) { textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc( "fert.tab.unten.los.title", theclientDto.getMandant(), theclientDto.getLocUiAsString()); if (textDto != null) { s += textDto.getCText() + " "; } else { s += "Los "; } LosDto auftragDto = getFertigungFac().losFindByPrimaryKey(auftragIId); s += auftragDto.getCNr(); if (auftragDto.getCProjekt() != null) { s += " " + auftragDto.getCProjekt(); } LossollarbeitsplanDto[] dtos = getFertigungFac() .lossollarbeitsplanFindByLosIIdArtikelIIdTaetigkeit(auftragIId, artikelId); if (dtos.length > 0) { zeitdatenDto.setIBelegartpositionid(dtos[0].getIId()); } } zeitdatenDto.setPersonalIId(personalDto.getIId()); zeitdatenDto.setCBelegartnr(belegart); zeitdatenDto.setIBelegartid(auftragIId); zeitdatenDto.setArtikelIId(artikelId); ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKey(artikelId, theclientDto); meldung += s + ", " + artikelDto.formatArtikelbezeichnung(); getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, false, theclientDto); meldung += " um " + Helper.formatTime(tZeit, localeLogon) + " gebucht."; getTheClient(request, response).setSMsg(meldung); } } else { getTheClient(request, response).setSMsg("Keine Auftragsposition ausgew\u00E4hlt"); } } else if (buchesondertaetigkeit != null && buchesondertaetigkeit.length() > 0) { String zusatz = request.getParameter("zusatz"); if (zusatz != null && zusatz.length() > 0) { // Zeit ist immer jetzt Calendar c = Calendar.getInstance(); c.setTimeInMillis(zeitdatenDto.getTZeit().getTime()); ZeitdatenDto[] letzeBuchungen = getZeiterfassungsFac() .zeitdatenFindZeitdatenEinesTagesUndEinerPersonOnheBelegzeiten( zeitdatenDto.getPersonalIId(), Helper.cutTimestamp(zeitdatenDto.getTZeit()), zeitdatenDto.getTZeit()); Integer taetigkeitIId_Kommt = getZeiterfassungsFac() .taetigkeitFindByCNr(ZeiterfassungFac.TAETIGKEIT_KOMMT, theclientDto).getIId(); Integer taetigkeitIId_Unter = getZeiterfassungsFac() .taetigkeitFindByCNr(ZeiterfassungFac.TAETIGKEIT_UNTER, theclientDto).getIId(); Integer taetigkeitIId_Geht = getZeiterfassungsFac() .taetigkeitFindByCNr(ZeiterfassungFac.TAETIGKEIT_GEHT, theclientDto).getIId(); if (zusatz.equals("spezialkommt")) { if (letzeBuchungen.length == 0) { // Zuerst Kommt und dann UNTER ZeitdatenDto dtoKommt = new ZeitdatenDto(); dtoKommt.setTaetigkeitIId(taetigkeitIId_Kommt); dtoKommt.setPersonalIId(zeitdatenDto.getPersonalIId()); dtoKommt.setCWowurdegebucht("Spezial-Kommt"); // Zeit 100 MS vorher dtoKommt.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime())); getZeiterfassungsFac().createZeitdaten(dtoKommt, false, false, false, theclientDto); // Taetigkeit GEHT Buchen ZeitdatenDto dtoUnter = new ZeitdatenDto(); dtoUnter.setTaetigkeitIId(taetigkeitIId_Unter); dtoUnter.setPersonalIId(zeitdatenDto.getPersonalIId()); dtoUnter.setCWowurdegebucht("Spezial-Kommt"); // Zeit 100 MS nachher dtoUnter.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime() + 96)); getZeiterfassungsFac().createZeitdaten(dtoUnter, false, false, false, theclientDto); } else if (letzeBuchungen.length == 1) { Integer letztetaetigkeit = letzeBuchungen[0].getTaetigkeitIId(); // Wenn nur Kommt, dann Unter buchen if (taetigkeitIId_Kommt.equals(letztetaetigkeit)) { // Taetigkeit UNTER Buchen ZeitdatenDto dtoUnter = new ZeitdatenDto(); dtoUnter.setTaetigkeitIId(taetigkeitIId_Unter); dtoUnter.setPersonalIId(zeitdatenDto.getPersonalIId()); dtoUnter.setCWowurdegebucht("Spezial-Kommt"); dtoUnter.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime())); getZeiterfassungsFac().createZeitdaten(dtoUnter, false, false, false, theclientDto); } } else if (letzeBuchungen.length > 1) { Integer letztetaetigkeit = letzeBuchungen[letzeBuchungen.length - 1].getTaetigkeitIId(); if (taetigkeitIId_Kommt.equals(letztetaetigkeit)) { // Taetigkeit UNTER Buchen ZeitdatenDto dtoUnter = new ZeitdatenDto(); dtoUnter.setTaetigkeitIId(taetigkeitIId_Unter); dtoUnter.setPersonalIId(zeitdatenDto.getPersonalIId()); dtoUnter.setCWowurdegebucht("Spezial-Kommt"); dtoUnter.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime())); getZeiterfassungsFac().createZeitdaten(dtoUnter, false, false, false, theclientDto); } else { // Wenn letzte Taetigkeit ein Geht ist wird // Kommt // und Unter gebucht if (!taetigkeitIId_Geht.equals(letztetaetigkeit)) { int iSondertaetigkeitenHintereinander = 1; for (int i = letzeBuchungen.length - 2; i >= 0; i--) { ZeitdatenDto dto = letzeBuchungen[i]; if (letztetaetigkeit.equals(dto.getTaetigkeitIId())) { iSondertaetigkeitenHintereinander++; } else { break; } letztetaetigkeit = dto.getTaetigkeitIId(); } if (iSondertaetigkeitenHintereinander % 2 == 0) { // Taetigkeit UNTER Buchen ZeitdatenDto dtoUnter = new ZeitdatenDto(); dtoUnter.setTaetigkeitIId(taetigkeitIId_Unter); dtoUnter.setPersonalIId(zeitdatenDto.getPersonalIId()); dtoUnter.setCWowurdegebucht("Spezial-Geht"); dtoUnter.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime())); getZeiterfassungsFac().createZeitdaten(dtoUnter, false, false, false, theclientDto); /** * @todo 100ms vorher Projekt-ENDE * buchen */ } } else { // Taetigkeit KOMMT Buchen ZeitdatenDto dtoKommt = new ZeitdatenDto(); dtoKommt.setTaetigkeitIId(taetigkeitIId_Kommt); dtoKommt.setPersonalIId(zeitdatenDto.getPersonalIId()); dtoKommt.setCWowurdegebucht("Spezial-Kommt"); dtoKommt.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime())); getZeiterfassungsFac().createZeitdaten(dtoKommt, false, false, false, theclientDto); // Taetigkeit UNTER Buchen ZeitdatenDto dtoUnter = new ZeitdatenDto(); dtoUnter.setTaetigkeitIId(taetigkeitIId_Unter); dtoUnter.setPersonalIId(zeitdatenDto.getPersonalIId()); dtoUnter.setCWowurdegebucht("Spezial-Kommt"); // Zeit 100 MS nachher dtoUnter.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime() + 96)); getZeiterfassungsFac().createZeitdaten(dtoUnter, false, false, false, theclientDto); } } } } else if (zusatz.equals("spezialgeht")) { if (letzeBuchungen.length > 1) { Integer letztetaetigkeit = letzeBuchungen[letzeBuchungen.length - 1].getTaetigkeitIId(); // Wenn letzte Taetigkeit kein geht ist, sonst wird // geht verschmissen if (!taetigkeitIId_Geht.equals(letztetaetigkeit)) { int iSondertaetigkeitenHintereinander = 1; for (int i = letzeBuchungen.length - 2; i >= 0; i--) { ZeitdatenDto dto = letzeBuchungen[i]; if (letztetaetigkeit.equals(dto.getTaetigkeitIId())) { iSondertaetigkeitenHintereinander++; } else { break; } letztetaetigkeit = dto.getTaetigkeitIId(); } if (iSondertaetigkeitenHintereinander % 2 == 1) { // Sondertaetigkeit Ende Buchen ZeitdatenDto dtoSonderEnde = new ZeitdatenDto(); dtoSonderEnde.setTaetigkeitIId(letztetaetigkeit); dtoSonderEnde.setPersonalIId(zeitdatenDto.getPersonalIId()); dtoSonderEnde.setCWowurdegebucht("Spezial-Geht"); // Zeit 100 MS vorher dtoSonderEnde.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime() - 96)); getZeiterfassungsFac().createZeitdaten(dtoSonderEnde, false, false, false, theclientDto); // Taetigkeit GEHT Buchen ZeitdatenDto dtoUnter = new ZeitdatenDto(); dtoUnter.setTaetigkeitIId(taetigkeitIId_Geht); dtoUnter.setPersonalIId(zeitdatenDto.getPersonalIId()); dtoUnter.setCWowurdegebucht("Spezial-Geht"); // Zeit 100 MS vorher dtoUnter.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime())); getZeiterfassungsFac().createZeitdaten(dtoUnter, false, false, false, theclientDto); } else { // Taetigkeit GEHT Buchen ZeitdatenDto dtoUnter = new ZeitdatenDto(); dtoUnter.setTaetigkeitIId(taetigkeitIId_Geht); dtoUnter.setPersonalIId(zeitdatenDto.getPersonalIId()); dtoUnter.setCWowurdegebucht("Spezial-Geht"); // Zeit 100 MS vorher dtoUnter.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime())); getZeiterfassungsFac().createZeitdaten(dtoUnter, false, false, false, theclientDto); } } } } else { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "zusatz '" + zusatz + "' unbekannt"); } setSJSPNext("mecs.jsp"); return getSJSPNext(); } else { if (request.getParameter("taetigkeit") != null) { Integer taetigkeitId = new Integer(request.getParameter("taetigkeit")); zeitdatenDto.setTaetigkeitIId(taetigkeitId); TaetigkeitDto dto = getZeiterfassungsFac().taetigkeitFindByPrimaryKey(taetigkeitId, theclientDto); meldung += dto.getBezeichnung(); getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, false, theclientDto); meldung += " um " + Helper.formatTime(tZeit, localeLogon) + " gebucht."; getTheClient(request, response).setSMsg(meldung); } else { getTheClient(request, response).setSMsg("Keine T\u00E4tigkeit ausgew\u00E4hlt"); } } } getTheClient(request, response).setData(hmData); // AD+CK logout wegen usercount synchronized (mutex) { // PJ 15986 getLogonFac().logout(theclientDto); } } else if (command.equals(TheApp.CMD_ZU_MECS_TERMINAL)) { // Personalstamm holen String master = request.getParameter("master"); try { ZutrittscontrollerDto zutrittscontrollerDto = getZutrittscontrollerFac() .zutrittscontrollerFindByCNr(master); ZutrittsobjektDto[] zutrittsobjektDtos = getZutrittscontrollerFac() .zutrittsobjektFindByZutrittscontrollerIId(zutrittscontrollerDto.getIId()); StringBuffer objekte = new StringBuffer(); for (int i = 0; i < zutrittsobjektDtos.length; i++) { objekte.append(Helper.fitString2Length(zutrittsobjektDtos[i].getCNr(), 6, ' ')); // terminal- // id objekte.append(Helper.fitString2Length(zutrittsobjektDtos[i].getCAdresse(), 100, ' ')); // adresse objekte.append("\r\n"); } myLogger.info(command + ":" + new String(objekte)); getTheClient(request, response).setSMsg(new String(objekte)); } catch (RemoteException ex5) { if (ex5.getCause() instanceof EJBExceptionLP) { EJBExceptionLP lpex = (EJBExceptionLP) ex5.getCause(); if (lpex.getCode() == EJBExceptionLP.FEHLER_BEI_FIND) { myLogger.error("Zutrittscontroller '" + master + "' nicht angelegt", ex5); } else { myLogger.error(ex5.getMessage(), ex5); } } } } else if (command.equals(TheApp.CMD_ZU_MECS_RELAIS)) { // Personalstamm holen String termid = request.getParameter("termid"); if (termid == null || termid.length() == 0) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Es ist der Parameter termid='LanPortName' erforderlich"); return null; } try { ZutrittsobjektDto zutrittsobjektDto = getZutrittscontrollerFac().zutrittsobjektFindByCNr(termid); StringBuffer objekte = new StringBuffer(); objekte.append("10"); // readerid objekte.append("0"); // port objekte.append(zutrittsobjektDto.getCRelais()); // relais String oeffnungszeit = zutrittsobjektDto.getFOeffnungszeit().toString(); oeffnungszeit = oeffnungszeit.replaceAll(",", "."); objekte.append(Helper.fitString2LengthAlignRight(oeffnungszeit, 4, ' ')); // oeffnungszeit objekte.append(zutrittsobjektDto.getZutrittsleserCNr().trim()); // readerid objekte.append("\r\n"); myLogger.info(command + ":" + new String(objekte)); getTheClient(request, response).setSMsg(new String(objekte)); } catch (EJBExceptionLP ex4) { if (ex4.getCode() == EJBExceptionLP.FEHLER_BEI_FIND) { response.sendError(HttpServletResponse.SC_NOT_FOUND, "Zutrittsobjekt '" + termid + "' nicht angelegt"); return null; } else { ex4.printStackTrace(); myLogger.error(ex4.getMessage(), ex4); } } } else if (command.equals(TheApp.CMD_ZU_MECS_ZUTRITT)) { String termid = request.getParameter("termid"); try { ZutrittsobjektDto dto = getZutrittscontrollerFac().zutrittsobjektFindByCNr(termid); String s = getZutrittscontrollerFac().getZutrittsdatenFuerEinObjektFuerMecs(dto.getIId(), theclientDto); myLogger.info(command + ":" + new String(s)); getTheClient(request, response).setSMsg(new String(s)); } catch (EJBExceptionLP ex4) { if (ex4.getCode() == EJBExceptionLP.FEHLER_BEI_FIND) { myLogger.error("Zutrittsobjekt '" + termid + "' nicht angelegt", ex4); response.sendError(HttpServletResponse.SC_NOT_FOUND, "Zutrittsobjekt '" + termid + "' nicht angelegt"); } else { myLogger.error(ex4.getMessage(), ex4); response.sendError(HttpServletResponse.SC_NOT_FOUND, ex4.getMessage()); } } } else if (command.equals(TheApp.CMD_ZU_MECS_AUSWEISE_ZUTRITT)) { PersonalzutrittsklasseDto[] dtos = getZutrittscontrollerFac().personalzutrittsklassenFindByTGueltigab( new Timestamp(System.currentTimeMillis()), theclientDto); ArrayList<StringBuffer> alDaten = new ArrayList<StringBuffer>(); for (int i = 0; i < dtos.length; i++) { StringBuffer sb = new StringBuffer(); sb.append("10"); // Hole personalDto PersonalDto personalDto = getPersonalFac().personalFindByPrimaryKeySmall(dtos[i].getPersonalIId()); sb.append(Helper.fitString2Length(personalDto.getCAusweis(), 20, ' ')); sb.append(Helper.fitString2Length(personalDto.getCPersonalnr().toString(), 10, ' ')); sb.append(Helper.fitString2Length("", 24, ' ')); // Hole Zutrittsklasse ZutrittsklasseDto zutrittsklasseDto = getZutrittscontrollerFac() .zutrittsklasseFindByPrimaryKey(dtos[i].getZutrittsklasseIId()); sb.append(Helper.fitString2Length(zutrittsklasseDto.getCNr(), 3, ' ')); alDaten.add(sb); } // Besucherausweise String[] ausweise = getZutrittscontrollerFac() .zutrittonlinecheckAusweiseFindByTGueltigab(new Timestamp(System.currentTimeMillis())); for (int i = 0; i < ausweise.length; i++) { StringBuffer sb = new StringBuffer(); sb.append("10"); sb.append(Helper.fitString2Length(ausweise[i], 20, ' ')); sb.append(Helper.fitString2Length("", 10, ' ')); sb.append(Helper.fitString2Length("", 24, ' ')); sb.append(Helper.fitString2Length(ZutrittscontrollerFac.ZUTRITTSKLASSE_ONLINECHECK, 3, ' ')); alDaten.add(sb); } // sortieren String datenGesamt = ""; for (int i = alDaten.size() - 1; i > 0; --i) { for (int j = 0; j < i; ++j) { if ((new String(alDaten.get(j))).compareTo(new String(alDaten.get(j + 1))) > 0) { StringBuffer lagerbewegungDtoTemp = alDaten.get(j); alDaten.set(j, alDaten.get(j + 1)); alDaten.set(j + 1, lagerbewegungDtoTemp); } } } for (int i = 0; i < alDaten.size(); i++) { StringBuffer sbTemp = alDaten.get(i); sbTemp.append("\r\n"); datenGesamt += new String(sbTemp); } myLogger.info(command + ":" + datenGesamt); getTheClient(request, response).setSMsg(datenGesamt); } else if (command.startsWith(TheApp.CMD_ZU_MECS_ZUTRITT_ONLINE_CHECK)) { String termid = request.getParameter("termid"); String card = request.getParameter("card"); String pin = request.getParameter("pin"); try { ZutrittsobjektDto dto = getZutrittscontrollerFac().zutrittsobjektFindByCNr(termid); boolean b = getZutrittscontrollerFac().onlineCheck(card, pin, new Timestamp(System.currentTimeMillis()), dto.getIId()); if (b == true) { myLogger.info(command + ": ZUTRITT ERLAUBT"); getTheClient(request, response).setSMsg("A"); } else { myLogger.info(command + ": ZUTRITT VERWEIGERT"); getTheClient(request, response).setSMsg("Z"); } } catch (EJBExceptionLP ex4) { if (ex4.getCause() instanceof EJBExceptionLP) { EJBExceptionLP lpex = (EJBExceptionLP) ex4.getCause(); if (lpex.getCode() == EJBExceptionLP.FEHLER_BEI_FIND) { response.sendError(HttpServletResponse.SC_NOT_FOUND, "Zutrittsobjekt '" + termid + "' nicht angelegt"); myLogger.error("Zutrittsobjekt '" + termid + "' nicht angelegt", ex4); } else { myLogger.error(ex4.getMessage(), ex4); response.sendError(HttpServletResponse.SC_NOT_FOUND, ex4.getMessage()); } } } } else if (command.startsWith(TheApp.CMD_ZU_MECS_ZUTRITT_EVENTS)) { String termid = request.getParameter("termid"); if (termid == null || termid.length() == 0) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Es ist der Parameter termid='LanPortName' erforderlich"); return null; } ZutrittsobjektDto dto = null; try { dto = getZutrittscontrollerFac().zutrittsobjektFindByCNr(termid); } catch (EJBExceptionLP e) { if (e.getCode() == EJBExceptionLP.FEHLER_BEI_FIND) { response.sendError(HttpServletResponse.SC_NOT_FOUND, "Zutrittsobjekt '" + termid + "' nicht angelegt"); return null; } else { e.printStackTrace(); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Unerwarteter Fehler aufgetreten."); return null; } } String s = getZutrittscontrollerFac().getZutrittsEventsFuerMecs(dto.getIId(), theclientDto); myLogger.info(command + ":" + s); getTheClient(request, response).setSMsg(s); } else if (command.startsWith(TheApp.CMD_ZU_MECS_MAXTRANSNR)) { getTheClient(request, response).setSMsg("999"); } else if (command.startsWith(TheApp.CMD_ZU_MECS_LOG)) { String record = command.substring(17); ZutrittslogDto dto = new ZutrittslogDto(); Calendar c = Calendar.getInstance(); String zeitpunkt = record.substring(5, 19); int iJahr = new Integer(zeitpunkt.substring(0, 4)); int iMonat = new Integer(zeitpunkt.substring(4, 6)) - 1; int iTag = new Integer(zeitpunkt.substring(6, 8)); int iStunden = new Integer(zeitpunkt.substring(8, 10)); int iMinuten = new Integer(zeitpunkt.substring(10, 12)); int iSekunden = new Integer(zeitpunkt.substring(12, 14)); c.set(iJahr, iMonat, iTag, iStunden, iMinuten, iSekunden); dto.setTZeitpunkt(new Timestamp(c.getTimeInMillis())); String personalnr = record.substring(19, 24); String erlaubt = record.substring(24, 27); String objekt = record.substring(46, 67).trim(); String ausweis = record.substring(106, 135).trim(); String event = record.substring(126, 137).trim(); PersonalDto personalDto = getPersonalFac().personalFindByCAusweis(ausweis); if (personalDto != null || event.equals("PINONLINE") || personalnr.equals("?????") || personalnr.equals(" ")) { if (personalDto != null) { dto.setCPerson( getPartnerFac().partnerFindByPrimaryKey(personalDto.getPartnerIId(), theclientDto) .formatFixAnredeTitelName2Name1()); dto.setMandantCNr(personalDto.getMandantCNr()); } else if (personalnr.equals(" ")) { dto.setCPerson("Besucher"); dto.setMandantCNr(mandant); } else if (event != null && event.equals("PINONLINE")) { dto.setCPerson("Tempor\u00E4rer Pin-Code"); dto.setMandantCNr(mandant); } else { dto.setCPerson("Unbekannt"); dto.setMandantCNr(mandant); } if (erlaubt.equals("ZZ1")) { dto.setBErlaubt(Helper.boolean2Short(true)); } else { dto.setBErlaubt(Helper.boolean2Short(false)); } dto.setCAusweis(ausweis); dto.setCZutrittscontroller(null); try { ZutrittsobjektDto zutrittsobjektDto = getZutrittscontrollerFac() .zutrittsobjektFindByCNr(objekt); dto.setCZutrittsobjekt( zutrittsobjektDto.getBezeichnung() + "-" + zutrittsobjektDto.getCAdresse()); dto.setCZutrittscontroller(getZutrittscontrollerFac() .zutrittscontrollerFindByPrimaryKey(zutrittsobjektDto.getZutrittscontrollerIId()) .getCNr()); dto.setMandantCNrObjekt(zutrittsobjektDto.getMandantCNr()); } catch (RemoteException ex6) { dto.setCZutrittsobjekt("Zutrittsobjekt unbekannt"); } getZutrittscontrollerFac().createZutrittslog(dto); } myLogger.info(command); } else if (command.startsWith(TheApp.CMD_ZU_MECS_TEMPLATES)) { String sAendern = request.getParameter("changedsince"); PersonalfingerDto[] personalfingerDtos = null; if (sAendern == null) { personalfingerDtos = getZutrittscontrollerFac().personalfingerFindAll(); } else { Calendar c = Calendar.getInstance(); int iJahr = new Integer(sAendern.substring(0, 4)); int iMonat = new Integer(sAendern.substring(4, 6)) - 1; int iTag = new Integer(sAendern.substring(6, 8)); int iStunden = new Integer(sAendern.substring(8, 10)); int iMinuten = new Integer(sAendern.substring(10, 12)); c.set(iJahr, iMonat, iTag, iStunden, iMinuten, 0); c.set(Calendar.MILLISECOND, 0); personalfingerDtos = getZutrittscontrollerFac() .personalfingerFindByTAendern(new java.sql.Timestamp(c.getTimeInMillis()), theclientDto); } StringBuffer sb = new StringBuffer(); // Zuerts alle loeschen sb.append(Helper.fitString2LengthAlignRight("0", 5, ' ')); sb.append(Helper.fitString2LengthAlignRight("0", 2, ' ')); sb.append(Helper.fitString2Length("X", 512, 'X')); StringBuffer zeit = new StringBuffer(); Calendar cAendern = Calendar.getInstance(); zeit.append(Helper.fitString2Length(cAendern.get(Calendar.YEAR) + "", 4, '0')); zeit.append(Helper.fitString2Length((cAendern.get(Calendar.MONTH) + 1) + "", 2, '0')); zeit.append(Helper.fitString2Length(cAendern.get(Calendar.DAY_OF_MONTH) + "", 2, '0')); zeit.append(Helper.fitString2Length(cAendern.get(Calendar.HOUR_OF_DAY) + "", 2, '0')); zeit.append(Helper.fitString2Length(cAendern.get(Calendar.MINUTE) + "", 2, '0')); sb.append(zeit); sb.append("\r\n"); for (int i = 0; i < personalfingerDtos.length; i++) { PersonalfingerDto personalfingerDto = personalfingerDtos[i]; sb.append(Helper.fitString2LengthAlignRight(personalfingerDto.getIId() + "", 5, ' ')); sb.append(Helper.fitString2LengthAlignRight("1", 2, ' ')); String templateBase64 = new String( org.apache.commons.codec.binary.Base64.encodeBase64(personalfingerDto.getOTemplate1())); sb.append(Helper.fitString2Length(templateBase64, 512, ' ')); cAendern = Calendar.getInstance(); cAendern.setTimeInMillis(personalfingerDto.getTAendern().getTime()); zeit = new StringBuffer(); zeit.append(Helper.fitString2Length(cAendern.get(Calendar.YEAR) + "", 4, '0')); zeit.append(Helper.fitString2Length((cAendern.get(Calendar.MONTH) + 1) + "", 2, '0')); zeit.append(Helper.fitString2Length(cAendern.get(Calendar.DAY_OF_MONTH) + "", 2, '0')); zeit.append(Helper.fitString2Length(cAendern.get(Calendar.HOUR_OF_DAY) + "", 2, '0')); zeit.append(Helper.fitString2Length(cAendern.get(Calendar.MINUTE) + "", 2, '0')); sb.append(zeit); sb.append("\r\n"); if (personalfingerDto.getOTemplate2() != null) { sb.append(Helper.fitString2LengthAlignRight(personalfingerDto.getIId() + "", 5, ' ')); sb.append(Helper.fitString2LengthAlignRight("2", 2, ' ')); templateBase64 = new String( org.apache.commons.codec.binary.Base64.encodeBase64(personalfingerDto.getOTemplate2())); sb.append(Helper.fitString2Length(templateBase64, 512, ' ')); sb.append(zeit); if (i == personalfingerDtos.length - 1) { // sb.append("\r"); } else { sb.append("\r\n"); } } } getTheClient(request, response).setSMsg(new String(sb)); } return getSJSPNext(); }
From source file:com.openbravo.pos.sales.JRetailPanelTakeAway.java
private void incProduct(ProductInfoExt prod) { if (prod.isScale() && m_App.getDeviceScale().existsScale()) { try {//from w ww .j av a 2 s .co m Double value = m_App.getDeviceScale().readWeight(); if (value != null) { incProduct(value.doubleValue(), prod); } } catch (ScaleException e) { Toolkit.getDefaultToolkit().beep(); new MessageInf(MessageInf.SGN_WARNING, AppLocal.getIntString("message.noweight"), e).show(this); stateToZero(); } } else { // No es un producto que se pese o no hay balanza incProduct(1.0, prod); } }
From source file:com.openbravo.pos.sales.JRetailPanelTakeAway.java
private void stateTransition(char cTrans) throws BasicException { if (cTrans == '\n') { // Codigo de barras introducido if (m_sBarcode.length() > 0) { String sCode = m_sBarcode.toString(); if (sCode.startsWith("c")) { // barcode of a customers card try { CustomerInfoExt newcustomer = dlSales.findCustomerExt(sCode); if (newcustomer == null) { Toolkit.getDefaultToolkit().beep(); new MessageInf(MessageInf.SGN_WARNING, AppLocal.getIntString("message.nocustomer")) .show(this); } else { m_oTicket.setCustomer(newcustomer); // m_jTicketId.setText(m_oTicket.getName(m_oTicketExt)); }// ww w.j a v a2 s . c om } catch (BasicException e) { Toolkit.getDefaultToolkit().beep(); new MessageInf(MessageInf.SGN_WARNING, AppLocal.getIntString("message.nocustomer"), e) .show(this); } stateToZero(); } else if (sCode.length() == 13 && sCode.startsWith("250")) { // barcode of the other machine ProductInfoExt oProduct = new ProductInfoExt(); // Es un ticket oProduct.setReference(null); // para que no se grabe oProduct.setCode(sCode); oProduct.setName("Ticket " + sCode.substring(3, 7)); oProduct.setPriceSell(Double.parseDouble(sCode.substring(7, 12)) / 100); oProduct.setTaxCategoryID(((TaxCategoryInfo) taxcategoriesmodel.getSelectedItem()).getID()); // Se anade directamente una unidad con el precio y todo addTicketLine(oProduct, 1.0, includeTaxes(oProduct.getTaxCategoryID(), oProduct.getPriceSell())); } else if (sCode.length() == 13 && sCode.startsWith("210")) { // barcode of a weigth product incProductByCodePrice(sCode.substring(0, 7), Double.parseDouble(sCode.substring(7, 12)) / 100); } else { incProductByCode(sCode); } } else { Toolkit.getDefaultToolkit().beep(); } } else { // otro caracter // Esto es para el codigo de barras... m_sBarcode.append(cTrans); // Esto es para el los productos normales... if (cTrans == '\u007f') { stateToZero(); } else if ((cTrans == '0') && (m_iNumberStatus == NUMBER_INPUTZERO)) { // m_jPrice.setText("0"); } else if ((cTrans == '1' || cTrans == '2' || cTrans == '3' || cTrans == '4' || cTrans == '5' || cTrans == '6' || cTrans == '7' || cTrans == '8' || cTrans == '9') && (m_iNumberStatus == NUMBER_INPUTZERO)) { // Un numero entero // m_jPrice.setText(Character.toString(cTrans)); m_iNumberStatus = NUMBER_INPUTINT; m_iNumberStatusInput = NUMBERVALID; } else if ((cTrans == '0' || cTrans == '1' || cTrans == '2' || cTrans == '3' || cTrans == '4' || cTrans == '5' || cTrans == '6' || cTrans == '7' || cTrans == '8' || cTrans == '9') && (m_iNumberStatus == NUMBER_INPUTINT)) { // Un numero entero // m_jPrice.setText(m_jPrice.getText() + cTrans); } else if (cTrans == '.' && m_iNumberStatus == NUMBER_INPUTZERO) { // m_jPrice.setText("0."); m_iNumberStatus = NUMBER_INPUTZERODEC; } else if (cTrans == '.' && m_iNumberStatus == NUMBER_INPUTINT) { // m_jPrice.setText(m_jPrice.getText() + "."); m_iNumberStatus = NUMBER_INPUTDEC; } else if ((cTrans == '0') && (m_iNumberStatus == NUMBER_INPUTZERODEC || m_iNumberStatus == NUMBER_INPUTDEC)) { // Un numero decimal // m_jPrice.setText(m_jPrice.getText() + cTrans); } else if ((cTrans == '1' || cTrans == '2' || cTrans == '3' || cTrans == '4' || cTrans == '5' || cTrans == '6' || cTrans == '7' || cTrans == '8' || cTrans == '9') && (m_iNumberStatus == NUMBER_INPUTZERODEC || m_iNumberStatus == NUMBER_INPUTDEC)) { // Un numero decimal // m_jPrice.setText(m_jPrice.getText() + cTrans); m_iNumberStatus = NUMBER_INPUTDEC; m_iNumberStatusInput = NUMBERVALID; } else if (cTrans == '*' && (m_iNumberStatus == NUMBER_INPUTINT || m_iNumberStatus == NUMBER_INPUTDEC)) { m_jPor.setText("x"); m_iNumberStatus = NUMBER_PORZERO; } else if (cTrans == '*' && (m_iNumberStatus == NUMBER_INPUTZERO || m_iNumberStatus == NUMBER_INPUTZERODEC)) { // m_jPrice.setText("0"); m_jPor.setText("x"); m_iNumberStatus = NUMBER_PORZERO; } else if ((cTrans == '0') && (m_iNumberStatus == NUMBER_PORZERO)) { m_jPor.setText("x0"); } else if ((cTrans == '1' || cTrans == '2' || cTrans == '3' || cTrans == '4' || cTrans == '5' || cTrans == '6' || cTrans == '7' || cTrans == '8' || cTrans == '9') && (m_iNumberStatus == NUMBER_PORZERO)) { // Un numero entero m_jPor.setText("x" + Character.toString(cTrans)); m_iNumberStatus = NUMBER_PORINT; m_iNumberStatusPor = NUMBERVALID; } else if ((cTrans == '0' || cTrans == '1' || cTrans == '2' || cTrans == '3' || cTrans == '4' || cTrans == '5' || cTrans == '6' || cTrans == '7' || cTrans == '8' || cTrans == '9') && (m_iNumberStatus == NUMBER_PORINT)) { // Un numero entero m_jPor.setText(m_jPor.getText() + cTrans); } else if (cTrans == '.' && m_iNumberStatus == NUMBER_PORZERO) { m_jPor.setText("x0."); m_iNumberStatus = NUMBER_PORZERODEC; } else if (cTrans == '.' && m_iNumberStatus == NUMBER_PORINT) { m_jPor.setText(m_jPor.getText() + "."); m_iNumberStatus = NUMBER_PORDEC; } else if ((cTrans == '0') && (m_iNumberStatus == NUMBER_PORZERODEC || m_iNumberStatus == NUMBER_PORDEC)) { // Un numero decimal m_jPor.setText(m_jPor.getText() + cTrans); } else if ((cTrans == '1' || cTrans == '2' || cTrans == '3' || cTrans == '4' || cTrans == '5' || cTrans == '6' || cTrans == '7' || cTrans == '8' || cTrans == '9') && (m_iNumberStatus == NUMBER_PORZERODEC || m_iNumberStatus == NUMBER_PORDEC)) { // Un numero decimal m_jPor.setText(m_jPor.getText() + cTrans); m_iNumberStatus = NUMBER_PORDEC; m_iNumberStatusPor = NUMBERVALID; } else if (cTrans == '\u00a7' && m_iNumberStatusInput == NUMBERVALID && m_iNumberStatusPor == NUMBERZERO) { // Scale button pressed and a number typed as a price if (m_App.getDeviceScale().existsScale() && m_App.getAppUserView().getUser().hasPermission("sales.EditLines")) { try { Double value = m_App.getDeviceScale().readWeight(); if (value != null) { ProductInfoExt product = getInputProduct(); addTicketLine(product, value.doubleValue(), product.getPriceSell()); } } catch (ScaleException e) { Toolkit.getDefaultToolkit().beep(); new MessageInf(MessageInf.SGN_WARNING, AppLocal.getIntString("message.noweight"), e) .show(this); stateToZero(); } } else { // No existe la balanza; Toolkit.getDefaultToolkit().beep(); } } else if (cTrans == '\u00a7' && m_iNumberStatusInput == NUMBERZERO && m_iNumberStatusPor == NUMBERZERO) { // Scale button pressed and no number typed. int i = m_ticketlines.getSelectedIndex(); if (i < 0) { Toolkit.getDefaultToolkit().beep(); } else if (m_App.getDeviceScale().existsScale()) { try { Double value = m_App.getDeviceScale().readWeight(); if (value != null) { RetailTicketLineInfo newline = new RetailTicketLineInfo(m_oTicket.getLine(i)); newline.setMultiply(value.doubleValue()); newline.setPrice(Math.abs(newline.getPrice())); paintTicketLine(i, newline); } } catch (ScaleException e) { // Error de pesada. Toolkit.getDefaultToolkit().beep(); new MessageInf(MessageInf.SGN_WARNING, AppLocal.getIntString("message.noweight"), e) .show(this); stateToZero(); } } else { // No existe la balanza; Toolkit.getDefaultToolkit().beep(); } // Add one product more to the selected line } else if (cTrans == '+' && m_iNumberStatusInput == NUMBERZERO && m_iNumberStatusPor == NUMBERZERO) { int i = m_ticketlines.getSelectedIndex(); if (i < 0) { Toolkit.getDefaultToolkit().beep(); } else { RetailTicketLineInfo newline = new RetailTicketLineInfo(m_oTicket.getLine(i)); //If it's a refund + button means one unit less if (m_oTicket.getTicketType() == RetailTicketInfo.RECEIPT_REFUND) { newline.setMultiply(newline.getMultiply() - 1.0); paintTicketLine(i, newline); } else { // ProductInfoExt product = new ProductInfoExt(); // add one unit to the selected line newline.setMultiply(newline.getMultiply() + 1.0); // buttonPlus = 2; paintTicketLine(i, newline); // m_oTicket.refreshTxtFields(1); //below line is for promotion products // ProductInfoExt product = getInputProduct(); // addTicketLine(product, 1.0, product.getPriceSell()); } } // Delete one product of the selected line } else if (cTrans == '-' && m_iNumberStatusInput == NUMBERZERO && m_iNumberStatusPor == NUMBERZERO && m_App.getAppUserView().getUser().hasPermission("sales.EditLines")) { int i = m_ticketlines.getSelectedIndex(); if (i < 0) { Toolkit.getDefaultToolkit().beep(); } else { RetailTicketLineInfo newline = new RetailTicketLineInfo(m_oTicket.getLine(i)); //If it's a refund - button means one unit more if (m_oTicket.getTicketType() == RetailTicketInfo.RECEIPT_REFUND) { newline.setMultiply(newline.getMultiply() + 1.0); if (newline.getMultiply() >= 0) { removeTicketLine(i); } else { paintTicketLine(i, newline); } } else { // substract one unit to the selected line newline.setMultiply(newline.getMultiply() - 1.0); // m_oTicket.refreshTxtFields(1); if (newline.getMultiply() > 0.0) { // removeTicketLine(i); // elimino la linea // } else { paintTicketLine(i, newline); // m_oTicket.refreshTxtFields(1); //below line is for promotion products // ProductInfoExt product = getInputProduct(); // addTicketLine(product, newline.getMultiply(), product.getPriceSell()); } } } // Set n products to the selected line } else if (cTrans == '+' && m_iNumberStatusInput == NUMBERZERO && m_iNumberStatusPor == NUMBERVALID) { int i = m_ticketlines.getSelectedIndex(); if (i < 0) { Toolkit.getDefaultToolkit().beep(); } else { double dPor = getPorValue(); RetailTicketLineInfo newline = new RetailTicketLineInfo(m_oTicket.getLine(i)); if (m_oTicket.getTicketType() == RetailTicketInfo.RECEIPT_REFUND) { newline.setMultiply(-dPor); newline.setPrice(Math.abs(newline.getPrice())); paintTicketLine(i, newline); } else { newline.setMultiply(dPor); newline.setPrice(Math.abs(newline.getPrice())); paintTicketLine(i, newline); } } // Set n negative products to the selected line } else if (cTrans == '-' && m_iNumberStatusInput == NUMBERZERO && m_iNumberStatusPor == NUMBERVALID && m_App.getAppUserView().getUser().hasPermission("sales.EditLines")) { int i = m_ticketlines.getSelectedIndex(); if (i < 0) { Toolkit.getDefaultToolkit().beep(); } else { double dPor = getPorValue(); RetailTicketLineInfo newline = new RetailTicketLineInfo(m_oTicket.getLine(i)); if (m_oTicket.getTicketType() == RetailTicketInfo.RECEIPT_NORMAL) { newline.setMultiply(dPor); newline.setPrice(-Math.abs(newline.getPrice())); paintTicketLine(i, newline); } } // Anadimos 1 producto } else if (cTrans == '+' && m_iNumberStatusInput == NUMBERVALID && m_iNumberStatusPor == NUMBERZERO && m_App.getAppUserView().getUser().hasPermission("sales.EditLines")) { ProductInfoExt product = getInputProduct(); addTicketLine(product, 1.0, product.getPriceSell()); // Anadimos 1 producto con precio negativo } else if (cTrans == '-' && m_iNumberStatusInput == NUMBERVALID && m_iNumberStatusPor == NUMBERZERO && m_App.getAppUserView().getUser().hasPermission("sales.EditLines")) { ProductInfoExt product = getInputProduct(); addTicketLine(product, 1.0, -product.getPriceSell()); // Anadimos n productos } else if (cTrans == '+' && m_iNumberStatusInput == NUMBERVALID && m_iNumberStatusPor == NUMBERVALID && m_App.getAppUserView().getUser().hasPermission("sales.EditLines")) { ProductInfoExt product = getInputProduct(); addTicketLine(product, getPorValue(), product.getPriceSell()); // Anadimos n productos con precio negativo ? } else if (cTrans == '-' && m_iNumberStatusInput == NUMBERVALID && m_iNumberStatusPor == NUMBERVALID && m_App.getAppUserView().getUser().hasPermission("sales.EditLines")) { ProductInfoExt product = getInputProduct(); addTicketLine(product, getPorValue(), -product.getPriceSell()); // Totals() Igual; } else if (cTrans == ' ' || cTrans == '=') { if (m_oTicket.getLinesCount() > 0) { if (closeTicket(m_oTicket, m_oTicketExt, m_aPaymentInfo)) { // Ends edition of current receipt if (!m_oTicket.getSplitValue().equals("Split")) { m_ticketsbag.deleteTicket(); } else { // m_ticketsbag.deleteTicket(m_oTicket.getSplitSharedId()); } } else { // repaint current ticket refreshTicket(); } } else { Toolkit.getDefaultToolkit().beep(); } } } }
From source file:ffx.autoparm.Potential2.java
/** * key_filename and cube_filename can be null if they are in the same * directory as xyz_filename eps is only needed if choice == 4, otherwise * leave as null cube_filename is needed if choice == 1 * * @param choice a int.//from w ww. j a va 2 s. c o m * @param xyz_filename a {@link java.lang.String} object. * @param cube_filename a {@link java.lang.String} object. * @param eps a {@link java.lang.Double} object. * @throws java.io.IOException if any. */ public Potential2(int choice, String xyz_filename, String cube_filename, Double eps) throws IOException { if (choice == 1) { do_cube(cube_filename); System.exit(0); } structure_xyz = new File(xyz_filename); if (!(structure_xyz != null && structure_xyz.exists() && structure_xyz.canRead())) { System.out.println("Couldn't find xyz file"); System.exit(1); } int n = 1; String oxyzfname = null; String old = xyz_filename; while (structure_xyz != null && structure_xyz.exists() && structure_xyz.canRead()) { oxyzfname = xyz_filename; n++; xyz_filename = old; xyz_filename = xyz_filename + "_" + Integer.toString(n); structure_xyz = new File(xyz_filename); } structure_xyz = new File(oxyzfname); int index = oxyzfname.lastIndexOf("."); String name = oxyzfname.substring(0, index); String keyfname = name + ".key"; structure_key = new File(keyfname); while (!(structure_key != null && structure_key.exists() && structure_key.canRead())) { System.out.println("Enter the Key Filename: "); keyfname = stdreader.readLine(); structure_key = new File(keyfname); if (!(structure_key != null && structure_key.exists() && structure_key.canRead())) { System.out.println("Couldn't find key file"); } } n = 1; String okeyfname = null; old = keyfname; while (structure_key != null && structure_key.exists() && structure_key.canRead() && structure_key.length() != 0) { okeyfname = keyfname; n++; keyfname = old; keyfname = keyfname + "_" + Integer.toString(n); structure_key = new File(keyfname); } structure_key = new File(okeyfname); // String prmfname = name+".prm"; // structure_prm = new File(prmfname); // while(!(structure_prm != null && structure_prm.exists() && structure_prm.canRead())){ // System.out.println("Enter the prm Filename: "); // prmfname = stdreader.readLine(); // structure_prm = new File(prmfname); // if(!(structure_prm != null && structure_prm.exists() && structure_prm.canRead())){ // System.out.println("Couldn't find prm file"); // } // } // // n = 1; // String oprmfname = null; // old = prmfname; // while(structure_prm != null && structure_prm.exists() && structure_prm.canRead() && structure_prm.length() != 0){ // oprmfname = prmfname; // n++; // prmfname = old; // prmfname = prmfname+"_"+Integer.toString(n); // structure_prm = new File(prmfname); // } // // structure_prm = new File(oprmfname); molecularAssembly = new MolecularAssembly(name); molecularAssembly.setFile(structure_xyz); CompositeConfiguration properties = Keyword_poltype.loadProperties(structure_key); ForceFieldFilter_2 forceFieldFilter = new ForceFieldFilter_2(properties, structure_key); //Decides difference between using prm file (below) or key file (above) for parameters //ForceFieldFilter forceFieldFilter = new ForceFieldFilter(properties); forceField = forceFieldFilter.parse(); molecularAssembly.setForceField(forceField); XYZFilter xyzFilter = new XYZFilter(structure_xyz, molecularAssembly, forceField, properties); xyzFilter.readFile(); Utilities.biochemistry(molecularAssembly, xyzFilter.getAtomList()); xyzFilter.applyAtomProperties(); molecularAssembly.finalize(true, forceField); atoms = molecularAssembly.getAtomArray(); nAtoms = atoms.length; ParallelTeam parallelTeam = new ParallelTeam(); crystal = create_crystal(forceField, atoms); nSymm = crystal.spaceGroup.getNumberOfSymOps(); int molecule[] = molecularAssembly.getMoleculeNumbers(); VanDerWaals vanderWaals = new VanDerWaals(atoms, molecule, crystal, forceField, parallelTeam); //RENAME //store_key_file(structure_prm); store_key_file(structure_key); pme = new PME_2(forceField, atoms, crystal, parallelTeam, vanderWaals.getNeighborLists(), key); if (choice == 2) { double pgrid[][][] = gen_pot_grid(null, atoms, 1); String potfilename = name + ".pot"; String ofname = potfilename; File outf = new File(potfilename); n = 1; while (outf != null && outf.exists() && outf.canRead()) { potfilename = ofname; n++; potfilename = potfilename + "_" + Integer.toString(n); outf = new File(potfilename); } String gridfilename = name + ".grid"; String ofgname = gridfilename; File outfg = new File(gridfilename); n = 1; while (outfg != null && outfg.exists() && outfg.canRead()) { gridfilename = ofgname; n++; gridfilename = gridfilename + "_" + Integer.toString(n); outfg = new File(gridfilename); } output_pgrid(outf, outfg, pgrid); System.exit(0); } String cubefname = name + ".cube"; structure_cube = new File(cubefname); while (!(structure_cube != null && structure_cube.exists() && structure_cube.canRead())) { System.out.println("Enter the Cube Filename: "); cubefname = stdreader.readLine(); structure_cube = new File(cubefname); if (!(structure_cube != null && structure_cube.exists() && structure_cube.canRead())) { System.out.println("Couldn't find cube file"); } } n = 1; String ocubefname = null; old = cubefname; while (structure_cube != null && structure_cube.exists() && structure_cube.canRead()) { ocubefname = cubefname; n++; cubefname = old; cubefname = cubefname + "_" + Integer.toString(n); structure_cube = new File(cubefname); } structure_cube = new File(ocubefname); if (choice == 3) { target_grid = gen_pot_grid(structure_cube, atoms, 0); pme.init_prms(); output_stats(); System.exit(0); } else if (choice == 4) { target_grid = gen_pot_grid(structure_cube, atoms, 0); pme.set_target_grid(target_grid); output_stats(); int m = 7; nvars = pme.getNumberOfVariables(); x = new double[nvars]; grad = new double[nvars]; scaling = new double[nvars]; pme.getCoordinates(x); double e = pme.energyAndGradient(x, grad); time = -System.nanoTime(); int status = 0; long at = System.nanoTime(); status = LBFGS.minimize(nvars, m, x, e, grad, eps.doubleValue(), pme, this); long bt = System.nanoTime(); System.out.println("TIME FOR LBFGS: " + (bt - at) * 1e-9 + " seconds\n"); switch (status) { case 0: logger.info(String.format("\n Optimization achieved convergence criteria: %8.5f\n", grms)); break; case 1: logger.info(String.format("\n Optimization terminated at step %d.\n", nSteps)); break; default: logger.warning("\n Optimization failed.\n"); } pme.init_prms(); output_stats(); //output_keyfile(pme.getallmpoles(x), prmfname); output_keyfile(pme.getallmpoles(x), keyfname); } }
From source file:com.primovision.lutransport.service.ImportMainSheetServiceImpl.java
@Override @Transactional(readOnly = false, propagation = Propagation.REQUIRED) public List<String> importMileageLogMainSheet(InputStream is, Date period, Double resetMiles, Long createdBy) throws Exception { List<String> errorList = new ArrayList<String>(); if (!checkOldGPSMileageLoaded(period)) { String errorMsg = "Please upload old mileage first"; errorList.add(errorMsg);/*from w w w. ja va2 s . c om*/ return errorList; } List<MileageLog> mileageLogList = new ArrayList<MileageLog>(); int recordCount = 0; int errorCount = 0; int recordsToBeSkipped = 6; DecimalFormat milesFormat = new DecimalFormat("#.0"); try { POIFSFileSystem fs = new POIFSFileSystem(is); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFSheet sheet = wb.getSheetAt(1); Iterator rows = sheet.rowIterator(); while (rows.hasNext()) { HSSFRow row = (HSSFRow) rows.next(); recordCount++; System.out.println("Processing record No: " + recordCount); /*if (recordCount == 1) { continue; }*/ if (recordCount <= recordsToBeSkipped) { continue; } boolean recordError = false; boolean fatalRecordError = false; StringBuffer recordErrorMsg = new StringBuffer(); MileageLog mileageLog = null; try { String unit = ((String) getCellValue(row.getCell(0), true)); if (StringUtils.equals("END_OF_DATA", unit)) { break; } if (!StringUtils.isNumeric(unit)) { continue; } String stateStr = ((String) getCellValue(row.getCell(1), true)); /*if (StringUtils.equals("Total", stateStr)) { continue; }*/ mileageLog = new MileageLog(); Date firstInState = (Date) getCellValue(row.getCell(3), true); if (firstInState == null) { recordError = true; fatalRecordError = true; recordErrorMsg.append("First in State,"); } else { mileageLog.setFirstInState(firstInState); } Date lastInState = (Date) getCellValue(row.getCell(4), true); if (lastInState == null) { recordError = true; fatalRecordError = true; recordErrorMsg.append("Last in State,"); } else { mileageLog.setLastInState(lastInState); } Vehicle vehicle = retrieveVehicle(unit, lastInState); if (vehicle == null) { recordError = true; fatalRecordError = true; recordErrorMsg.append("Unit,"); } else { mileageLog.setUnitNum(unit); mileageLog.setUnit(vehicle); mileageLog.setVin(vehicle.getVinNumber()); mileageLog.setCompany(vehicle.getOwner()); } State state = retrieveStateByCode(stateStr); if (state == null) { recordError = true; fatalRecordError = true; recordErrorMsg.append("State,"); } else { mileageLog.setState(state); } String miles = ((String) getCellValue(row.getCell(7), true)); Double milesDbl = processMiles(miles, resetMiles); if (milesDbl == null) { recordError = true; fatalRecordError = true; recordErrorMsg.append("Miles,"); } else { String formattedMilesStr = milesFormat.format(milesDbl.doubleValue()); Double formattedMiles = new Double(formattedMilesStr); mileageLog.setMiles(formattedMiles); } /*String vin = ((String) getCellValue(row.getCell(7))); if (!validateVin(vin)) { recordError = true; fatalRecordError = true; recordErrorMsg.append("VIN,"); } else { mileageLog.setVin(vin); } String groups = ((String) getCellValue(row.getCell(6))); groups = StringUtils.isEmpty(groups) ? StringUtils.EMPTY : groups; mileageLog.setGroups(groups);*/ mileageLog.setPeriod(period); VehiclePermit vehiclePermit = retrieveVehiclePermit(mileageLog); if (vehiclePermit != null && StringUtils.isNotEmpty(vehiclePermit.getPermitNumber())) { mileageLog.setVehiclePermit(vehiclePermit); mileageLog.setVehiclePermitNumber(vehiclePermit.getPermitNumber()); } else { mileageLog.setVehiclePermit(null); mileageLog.setVehiclePermitNumber(StringUtils.EMPTY); if (mileageLog.getState() != null && StringUtils.equals("NY", mileageLog.getState().getCode())) { recordError = true; recordErrorMsg.append("Could not determine vehicle permit,"); } } mileageLog.setGps("Y"); mileageLog.setSource(MileageLog.SOURCE_NEW_GPS); MileageLog existingMileageLog = checkDuplicate(mileageLog); if (existingMileageLog != null) { /*if (!StringUtils.equals(MileageLog.SOURCE_OLD_GPS, existingMileageLog.getSource())) { recordError = true; fatalRecordError = true; recordErrorMsg.append("Duplicate record,"); } else {*/ Double consolidatedMiles = existingMileageLog.getMiles() + mileageLog.getMiles(); existingMileageLog.setMiles(consolidatedMiles); existingMileageLog.setLastInState(mileageLog.getLastInState()); if (StringUtils.equals(MileageLog.SOURCE_OLD_GPS, existingMileageLog.getSource()) && StringUtils.equals(MileageLog.SOURCE_NEW_GPS, mileageLog.getSource())) { existingMileageLog.setSource(MileageLog.SOURCE_OLD_NEW_GPS); } existingMileageLog.setModifiedAt(Calendar.getInstance().getTime()); existingMileageLog.setModifiedBy(createdBy); mileageLog = existingMileageLog; } } catch (Exception ex) { recordError = true; fatalRecordError = true; recordErrorMsg.append("Error while processing record,"); } if (recordError) { String msgPreffix = fatalRecordError ? "Record NOT loaded->" : "Record LOADED, but has errors->"; errorList.add( msgPreffix + "Line " + (recordCount + 1) + ": " + recordErrorMsg.toString() + "<br/>"); errorCount++; } if (!fatalRecordError) { mileageLogList.add(mileageLog); } } System.out.println("Done processing...Total record count: " + recordCount + ". Error count: " + errorCount + ". Number of records being loaded: " + mileageLogList.size()); if (!mileageLogList.isEmpty()) { for (MileageLog aMileageLog : mileageLogList) { if (aMileageLog.getCreatedBy() == null) { aMileageLog.setCreatedBy(createdBy); aMileageLog.setCreatedAt(Calendar.getInstance().getTime()); } genericDAO.saveOrUpdate(aMileageLog); } uploadNoGPSMileageLogData(period, createdBy); } } catch (Exception ex) { errorList.add("Not able to upload XL!!! Please try again."); log.warn("Error while importing Mileage log: " + ex); } return errorList; }