Author: kmorin Date: 2014-09-18 14:52:45 +0200 (Thu, 18 Sep 2014) New Revision: 624 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/624 Log: - change object data - in distinct values selection, join only if necessary Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java =================================================================== --- trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java 2014-09-18 12:25:02 UTC (rev 623) +++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java 2014-09-18 12:52:45 UTC (rev 624) @@ -918,10 +918,16 @@ args.put("archiveStatus", DemandStatus.ARCHIVED); String query = "SELECT DISTINCT " + property + - " FROM " + Email.class.getName() + " AS email" + - " LEFT OUTER JOIN email." + Email.PROPERTY_CLIENT + " AS client" + - " LEFT OUTER JOIN email." + Email.PROPERTY_RANGE_ROW + " AS rangeRow" + folderAndStatusCondition; + " FROM " + Email.class.getName() + " AS email"; + if (property.startsWith("client.")) { + query += " LEFT OUTER JOIN email." + Email.PROPERTY_CLIENT + " AS client"; + + } else if (property.startsWith("rangeRow.")) { + query += " LEFT OUTER JOIN email." + Email.PROPERTY_RANGE_ROW + " AS rangeRow"; + } + query += folderAndStatusCondition; + if (StringUtils.isNotBlank(condition)) { query += " AND " + condition; } @@ -930,7 +936,7 @@ Set<Object> result = new HashSet<>(queryResults); // check if the property is sometimes null - if (property.startsWith("rangeRow")) { + if (property.startsWith("rangeRow.")) { query = "FROM " + Email.class.getName() + " AS email" + " LEFT OUTER JOIN email." + Email.PROPERTY_RANGE_ROW + " AS rangeRow" + folderAndStatusCondition + " AND rangeRow IS NULL"; @@ -942,11 +948,15 @@ } if (!result.contains(null)) { - query = "FROM " + Email.class.getName() + " AS email" + - " LEFT OUTER JOIN email." + Email.PROPERTY_CLIENT + " AS client" + - " LEFT OUTER JOIN email." + Email.PROPERTY_RANGE_ROW + " AS rangeRow" + - folderAndStatusCondition + " AND " + property + " IS NULL"; + query = "FROM " + Email.class.getName() + " AS email"; + if (property.startsWith("client.")) { + query += " LEFT OUTER JOIN email." + Email.PROPERTY_CLIENT + " AS client"; + } else if (property.startsWith("rangeRow.")) { + query += " LEFT OUTER JOIN email." + Email.PROPERTY_RANGE_ROW + " AS rangeRow"; + } + query += folderAndStatusCondition + " AND " + property + " IS NULL"; + if (StringUtils.isNotBlank(condition)) { query += " AND " + condition; } Modified: trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java =================================================================== --- trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java 2014-09-18 12:25:02 UTC (rev 623) +++ trunk/faxtomail-ui-web/src/main/java/com/franciaflex/faxtomail/web/job/MailFilterJob.java 2014-09-18 12:52:45 UTC (rev 624) @@ -323,17 +323,36 @@ String object; if (client != null) { //TODO echatellier : a valider que l'on affiche bien le premier mail du client - String faxNumber = "-"; - if (CollectionUtils.isNotEmpty(client.getFaxNumbers())) { - faxNumber = client.getFaxNumbers().get(0); + String contact = sender; + if (email.isFax()) { + String faxNumber = contact.substring(0, contact.indexOf('@')).replaceAll(" ", ""); + // NumberUtils.isNumber peut echouer (notation octal) + if (StringUtils.isNumeric(faxNumber)) { + contact = StringUtils.leftPad(faxNumber, 10, '0'); + } } - object = ObjectUtils.defaultIfNull(client.getCaracteristic1(), "-") + " / " + - ObjectUtils.defaultIfNull(client.getCode(), "-") + " / " + - ObjectUtils.defaultIfNull(client.getName(), "-") + " / " + - faxNumber + " / " + - DateFormat.getDateInstance(DateFormat.MEDIUM).format(new Date()); + List<String> objectItems = new ArrayList<>(); + if (StringUtils.isNotEmpty(client.getCaracteristic1())) { + objectItems.add(client.getCaracteristic1()); + } + if (StringUtils.isNotEmpty(client.getCaracteristic2())) { + objectItems.add(client.getCaracteristic2()); + } + if (StringUtils.isNotEmpty(client.getCaracteristic3())) { + objectItems.add(client.getCaracteristic3()); + } + if (StringUtils.isNotEmpty(client.getCode())) { + objectItems.add(client.getCode()); + } + if (StringUtils.isNotEmpty(client.getName())) { + objectItems.add(client.getName()); + } + objectItems.add(contact); + objectItems.add(DateFormat.getDateInstance(DateFormat.MEDIUM).format(new Date())); + object = StringUtils.join(objectItems, " / "); + modifiedProperties.add(Email.PROPERTY_CLIENT); } else {
participants (1)
-
kmorin@users.forge.codelutin.com