diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/service/impl/DataManager.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/service/impl/DataManager.java index 92b77b3..70d0490 100644 --- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/service/impl/DataManager.java +++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/service/impl/DataManager.java @@ -55,8 +55,13 @@ public class DataManager { } } } + + public void findAllRelationships(DataObject dataObject, List> lines) { + this.findManyToOneRelationships(dataObject, lines); + this.findOneToManyRelationships(dataObject, lines); + } - private void findRelationships(DataObject dataObject, List> lines) { + public void findManyToOneRelationships(DataObject dataObject, List> lines) { if (dataObject.getRelationships() != null) { for (HashMap line : lines) { for (Relationship relationship : dataObject.getRelationships()) { @@ -72,6 +77,50 @@ public class DataManager { } } } + + /*DataObjectRepository.get(relationship.referencedObject.id).then(function(dataObject) { + relationship.referencedObject = dataObject.originalElement; + var filterCriteria = { + start : 1, + dir : 'asc', + sort : relationship.searchObject.keys[0].referencedColumn, + limit : 99999, + fields: self.buildColumnsArray(relationship.referencedObject), + filters : [], + findRelationships : true + }; + angular.forEach(relationship.searchObject.keys, function(key){ + filterCriteria.filters.push({type: key.type, field: key.referencedColumn, value: object[key.objectColumn]}); + }); + DataRepository.listPaged(relationship.referencedObject, filterCriteria).then(function(result) { + var array = []; + angular.forEach(result.originalElement.objects, function(object){ + object.originalElement = angular.copy(object); + array.push(object); + }); + $timeout(function(){ + object[relationship.name] = array; + }); + }); + + });*/ + + public void findOneToManyRelationships(DataObject dataObject, List> lines) { + if (dataObject.getRelationships() != null) { + for (HashMap line : lines) { + for (Relationship relationship : dataObject.getRelationships()) { + if (relationship.getType().equals(RelationshipTypeEnum.ONE_TO_MANY)) { + HashMap searchObject = new HashMap(); + for (RelationshipColumn relationshipColumn : relationship.getColumns()) { + searchObject.put(relationshipColumn.getReferencedColumn().getName(), line.get(relationshipColumn.getObjectColumn().getName())); + } + relationship.setSearchObject(searchObject); + restoreRelationship(relationship, line); + } + } + } + } + } private void validateData(DataObject dataObject, HashMap data) { String errors = ""; @@ -193,7 +242,7 @@ public class DataManager { } if (searchParams.isFindRelationships()) { - this.findRelationships(dataObject, result); + this.findManyToOneRelationships(dataObject, result); } return new PageImpl>(result, pageable, totalElements); } diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/JasperReportManagerImpl.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/JasperReportManagerImpl.java index 6ae2b80..b860df0 100644 --- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/JasperReportManagerImpl.java +++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/JasperReportManagerImpl.java @@ -13,8 +13,8 @@ import net.sf.jasperreports.engine.JasperExportManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; -import net.sf.json.JSONArray; +import org.json.JSONArray; import org.springframework.stereotype.Component; import br.com.centralit.esi.api.execution.component.ExecuteScript; @@ -108,16 +108,16 @@ public class JasperReportManagerImpl extends ReportManagerImpl implements Jasper case DATAOBJECT: String SQLName = reportDataSource.getCustomSQL() != null ? reportDataSource.getCustomSQL().getName() : null; List> resultSet = dataManager.executeQuery(reportDataSource.getDataObject(), SQLName, inputMap); - dataSource = new JRBeanCollectionDataSource(resultSet); + //dataManager.findManyToOneRelationships(reportDataSource.getDataObject(), resultSet); + dataSource = new JRBeanCollectionDataSource(net.sf.json.JSONArray.fromObject(resultSet)); break; case FLOW: RuntimeEnvironmentOutput output = runtimeManager.execute(reportDataSource.getFlow().getName(), inputMap); if (output.getOutputVariables() != null) { Object value = output.getValue(reportDataSource.getOutputAttributeName()); - if (value != null) { - JSONArray array = JSONArray.fromObject(value); - dataSource = new JRBeanCollectionDataSource(array); + if (value != null && value instanceof JSONArray) { + dataSource = new JRBeanCollectionDataSource(net.sf.json.JSONArray.fromObject(value.toString())); } } break; @@ -125,9 +125,8 @@ public class JasperReportManagerImpl extends ReportManagerImpl implements Jasper case SCRIPT: RuntimeEnvironment runtimeEnvironment = new RuntimeEnvironmentImpl(null, inputMap); Object value = ExecuteScript.execute(runtimeEnvironment, report.getResource().getName(), reportDataSource.getScriptCode()); - if (value != null) { - JSONArray array = JSONArray.fromObject(value); - dataSource = new JRBeanCollectionDataSource(array); + if (value != null && value instanceof JSONArray) { + dataSource = new JRBeanCollectionDataSource(net.sf.json.JSONArray.fromObject(value.toString())); } break; diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/ReportVersionServiceImpl.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/ReportVersionServiceImpl.java index 83c472e..39ddc2f 100644 --- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/ReportVersionServiceImpl.java +++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/ReportVersionServiceImpl.java @@ -142,8 +142,12 @@ public class ReportVersionServiceImpl extends ResourceVersionServiceImpl impleme FormVersion formVersion = reportVersion.getFormVersion(); formVersion.setPath(reportVersion.getPath()); - formVersion = (FormVersion) formVersionService.save(reportVersion.getFormVersion()); - + formVersion.setGenerateDefaultPage(true); + if (formVersion.isNew()) { + formVersion = (FormVersion) formVersionService.save(reportVersion.getFormVersion()); + }else{ + formVersion = (FormVersion) formVersionService.merge(reportVersion.getFormVersion()); + } reportVersion.setForm(formVersion.getResource()); } diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/runtime/RuntimeEnvironmentImpl.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/runtime/RuntimeEnvironmentImpl.java index 6a31f2b..af2d35a 100644 --- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/runtime/RuntimeEnvironmentImpl.java +++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/runtime/RuntimeEnvironmentImpl.java @@ -304,7 +304,7 @@ public class RuntimeEnvironmentImpl implements RuntimeEnvironment { public RuntimeEnvironmentImpl(FlowVersion flowVersion, HashMap inputMap) { RuntimeEnvironmentInput input = new RuntimeEnvironmentInput( - flowVersion.getFlow().getName() + flowVersion != null ? flowVersion.getFlow().getName() : null ,false ,false) .setInputMap(inputMap); diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/runtime/RuntimeEnvironmentOutput.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/runtime/RuntimeEnvironmentOutput.java index 67be6cf..486092a 100644 --- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/runtime/RuntimeEnvironmentOutput.java +++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/runtime/RuntimeEnvironmentOutput.java @@ -11,6 +11,7 @@ import br.com.centralit.esi.api.design.model.FlowVersion; import br.com.centralit.esi.api.execution.model.ProcessInstance; import br.com.centralit.esi.api.execution.model.WorkItem; import br.com.centralit.esi.api.resource.model.Resource; +import br.com.centralit.esi.api.util.ConvertUtilsESI; import br.com.centralit.framework.esi.enumerated.VariableTypeEnum; import br.com.centralit.framework.esi.environment.EnvironmentOutput; import br.com.centralit.framework.esi.environment.EnvironmentVariable; @@ -168,7 +169,11 @@ public class RuntimeEnvironmentOutput extends EnvironmentOutput { public Object getValue(String name) { EnvironmentVariable var = this.getRuntimeVariable(name); if (var != null) { - return var.getValue(); + Object result = var.getValue(); + if (var.getVariableType().equals(VariableTypeEnum.JSON) && result instanceof String) { + result = ConvertUtilsESI.convertJson(result); + } + return result; }else{ return null; } diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/util/ConvertUtilsESI.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/util/ConvertUtilsESI.java index eb57dee..59fdfc0 100644 --- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/util/ConvertUtilsESI.java +++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/util/ConvertUtilsESI.java @@ -10,10 +10,12 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; +import java.util.Collection; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Map; import org.apache.commons.lang.math.NumberUtils; import org.apache.commons.lang3.time.DateUtils; @@ -597,4 +599,17 @@ public class ConvertUtilsESI { return result; } + + public static Collection> convertMapListToMapCollection(List> input) { + Collection> result = new ArrayList>(); + + if (input != null) { + for (HashMap map : input) { + result.add(map); + } + } + + return result; + } + } diff --git a/cit-esi-web/src/main/resources/reports/empregado.jrxml b/cit-esi-web/src/main/resources/reports/empregado.jrxml index d411189..11b197c 100644 --- a/cit-esi-web/src/main/resources/reports/empregado.jrxml +++ b/cit-esi-web/src/main/resources/reports/empregado.jrxml @@ -1,59 +1,68 @@ - + - + + + + + + + + + + <band height="79" splitType="Stretch"/> - - - - - + + - - + + - - + + + + + + - - - - - + - + - + + + + + + + + + + - + - - - - - - diff --git a/cit-esi-web/src/main/resources/reports/empregado_telefone.jrxml b/cit-esi-web/src/main/resources/reports/empregado_telefone.jrxml new file mode 100644 index 0000000..dbbe41c --- /dev/null +++ b/cit-esi-web/src/main/resources/reports/empregado_telefone.jrxml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/ReportController.js b/cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/ReportController.js index edcd89d..3156308 100644 --- a/cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/ReportController.js +++ b/cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/ReportController.js @@ -69,7 +69,7 @@ citApp.controller('ReportController', ["$scope", "appService", "ReportRepository return formVersion; }; - $scope.findDataSource = function(value) { + $scope.findConnection = function(value) { var dataSourceVH = { nome : value }; @@ -78,21 +78,21 @@ citApp.controller('ReportController', ["$scope", "appService", "ReportRepository }); }; - $scope.clearDataSourceAutoComplete = function() { + $scope.clearConnectionAutoComplete = function() { $scope.report.dataSource.connection = null; }; - $scope.setDataSource = function (item) { + $scope.setConnection = function (item) { if(item && item.id) { $scope.report.dataSource.connection = item; } }; - $scope.clearParameterDataSource = function() { + $scope.clearParameterConnection = function() { $scope.parameter.connection = null; }; - $scope.setParameterDataSource = function (item) { + $scope.setParameterConnection = function (item) { if(item && item.id) { $scope.parameter.connection = item; } @@ -118,12 +118,12 @@ citApp.controller('ReportController', ["$scope", "appService", "ReportRepository }; $scope.clearParameterDataObject = function() { - $scope.parameter.report = null; + $scope.parameter.dataObject = null; }; $scope.setParameterDataObject = function (item) { if(item && item.id) { - $scope.parameter.report = item; + $scope.parameter.dataObject = item; } }; diff --git a/cit-esi-web/src/main/webapp/html/report/reportEdit.html b/cit-esi-web/src/main/webapp/html/report/reportEdit.html index 456851a..ea4a8c7 100644 --- a/cit-esi-web/src/main/webapp/html/report/reportEdit.html +++ b/cit-esi-web/src/main/webapp/html/report/reportEdit.html @@ -132,12 +132,12 @@
-- libgit2 0.21.2