From addc0172b021beab6df6403b011c59ed1e41f478 Mon Sep 17 00:00:00 2001 From: carlos.alberto Date: Thu, 28 Apr 2016 19:58:57 -0300 Subject: [PATCH] Alteração no mecanismo de associação dos tipos de dados ao tipo de coluna do banco de dados --- cit-esi-api/src/main/java/br/com/centralit/esi/api/data/core/DataObjectUtil.java | 5 +++-- cit-esi-api/src/main/java/br/com/centralit/esi/api/data/model/DataColumn.java | 11 +++++++++++ cit-esi-api/src/main/java/br/com/centralit/esi/api/data/model/DataType.java | 4 +++- cit-esi-api/src/main/java/br/com/centralit/esi/api/data/model/DatabaseDomain.java | 22 +++++++++++++++++++--- cit-esi-api/src/main/java/br/com/centralit/esi/api/data/service/impl/DataObjectServiceImpl.java | 47 +++++++++++++++++++++++++++++++++++++++++++---- cit-esi-api/src/main/java/br/com/centralit/esi/api/pack/service/impl/PackServiceImpl.java | 71 ++++++++++++++++++++++++++++++++++++++--------------------------------- cit-esi-web/src/main/java/br/com/centralit/listener/StartupListenerEsi.java | 217 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------ cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/DataObjectController.js | 25 +++++++++++++++++-------- cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/DatabaseController.js | 48 ++++++++++++++++++++++++++++-------------------- cit-esi-web/src/main/webapp/html/dataObject/dataObjectEdit.html | 4 ++-- cit-esi-web/src/main/webapp/html/dataObject/dialogDataColumn.html | 16 ++++++++++------ cit-esi-web/src/main/webapp/html/database/databaseEdit.html | 63 ++++++++++++++++++++++++++++++++++++++++++++++++--------------- 12 files changed, 307 insertions(+), 226 deletions(-) diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/core/DataObjectUtil.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/core/DataObjectUtil.java index 9768bdb..106a064 100644 --- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/core/DataObjectUtil.java +++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/core/DataObjectUtil.java @@ -299,7 +299,7 @@ public final class DataObjectUtil { if (i > 0) { sql.append(","); } - sql.append(System.getProperty("line.separator").toString()+" "+dataObject.convertName(dataColumn.getName())+" "+dataColumn.getType().getName()); + sql.append(System.getProperty("line.separator").toString()+" "+dataObject.convertName(dataColumn.getName())+" "+dataColumn.getDatabaseType()); if (dataColumn.getType().getAllowSize() != null && dataColumn.getType().getAllowSize() && dataColumn.getSize() != null) { sql.append("("+dataColumn.getSize()+")"); } @@ -735,8 +735,9 @@ public final class DataObjectUtil { String[] typeArray = rsColumns.getString("TYPE_NAME").split(" "); String type = typeArray[0]; for (DatabaseDomain databaseDomain : dataSource.getDatabase().getTypes()) { - if (databaseDomain.getDataType().getName().equalsIgnoreCase(type)) { + if (databaseDomain.getName().equalsIgnoreCase(type)) { dataColumn.setType(databaseDomain.getDataType()); + dataColumn.setDatabaseType(type); dataColumn.setWidget(databaseDomain.getDataType().getWidget()); dataColumn.setWidth(databaseDomain.getDataType().getWidth() != null ? databaseDomain.getDataType().getWidth() : new Integer(1)); if (typeArray.length > 1 && typeArray[1].trim().equalsIgnoreCase("IDENTITY")) { diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/model/DataColumn.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/model/DataColumn.java index 79f3ad3..afe9673 100644 --- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/model/DataColumn.java +++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/model/DataColumn.java @@ -60,6 +60,9 @@ public class DataColumn extends DataField { @JsonView({ Views.EsiDataObjectEditView.class, Views.EsiPackageExportView.class}) private Boolean autoIncrement; + + @JsonView({ Views.EsiDataObjectEditView.class, Views.EsiPackageExportView.class}) + private String databaseType; @Transient @JsonView({ Views.EsiDataObjectEditView.class}) @@ -270,4 +273,12 @@ public class DataColumn extends DataField { formComponentPropertyValue.setIntegerValue(new Long(this.getSize())); } } + + public String getDatabaseType() { + return databaseType; + } + + public void setDatabaseType(String databaseType) { + this.databaseType = databaseType; + } } diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/model/DataType.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/model/DataType.java index 197f6ad..b54a480 100644 --- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/model/DataType.java +++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/model/DataType.java @@ -14,10 +14,12 @@ import br.com.centralit.esi.api.resource.model.FormWidget; import br.com.centralit.framework.json.Views; import br.com.centralit.framework.model.arquitetura.PersistentObjectAudit; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonView; @Entity @Table(name="ESI_DataType") +@JsonIgnoreProperties({ "$index" }) public class DataType extends PersistentObjectAudit { /** @@ -27,7 +29,7 @@ public class DataType extends PersistentObjectAudit { @Id @GeneratedValue(strategy = GenerationType.AUTO) - @JsonView({Views.EsiDataObjectListView.class, Views.EsiDataObjectEditView.class}) + @JsonView({Views.GenericView.class}) protected Long id; @Column(nullable = false, length=100) diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/model/DatabaseDomain.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/model/DatabaseDomain.java index 30ca581..ef54961 100644 --- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/model/DatabaseDomain.java +++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/model/DatabaseDomain.java @@ -1,5 +1,6 @@ package br.com.centralit.esi.api.data.model; +import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; @@ -12,10 +13,12 @@ import br.com.centralit.framework.json.Views; import br.com.centralit.framework.model.arquitetura.PersistentObject; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonView; @Entity @Table(name="ESI_DatabaseDomain") +@JsonIgnoreProperties({ "$index" }) public class DatabaseDomain extends PersistentObject { /** @@ -25,23 +28,28 @@ public class DatabaseDomain extends PersistentObject { @Id @GeneratedValue(strategy = GenerationType.AUTO) - @JsonView({Views.EsiDataObjectListView.class, Views.EsiDataObjectEditView.class}) + @JsonView({Views.GenericView.class}) protected Long id; + @Column(nullable = false, length=100) + @JsonView({ Views.GenericView.class}) + private String name; + @ManyToOne(fetch = FetchType.LAZY, optional = false) @JsonIgnore private Database database; @ManyToOne(fetch = FetchType.LAZY, optional = false) - @JsonView({ Views.EsiDataObjectListView.class, Views.EsiPackageExportView.class}) + @JsonView({ Views.EsiDataObjectListView.class, Views.EsiDataObjectEditView.class, Views.EsiPackageExportView.class}) private DataType dataType; public DatabaseDomain() { // TODO Auto-generated constructor stub } - public DatabaseDomain(Database database, DataType dataType) { + public DatabaseDomain(Database database, String name, DataType dataType) { this.database = database; + this.name = name; this.dataType = dataType; } @@ -70,4 +78,12 @@ public class DatabaseDomain extends PersistentObject { this.id = id; } + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + } diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/service/impl/DataObjectServiceImpl.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/service/impl/DataObjectServiceImpl.java index 8c9a006..1af4fc4 100644 --- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/service/impl/DataObjectServiceImpl.java +++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/data/service/impl/DataObjectServiceImpl.java @@ -15,6 +15,8 @@ import br.com.centralit.esi.api.data.model.CustomSQL; import br.com.centralit.esi.api.data.model.DataColumn; import br.com.centralit.esi.api.data.model.DataField; import br.com.centralit.esi.api.data.model.DataObject; +import br.com.centralit.esi.api.data.model.Database; +import br.com.centralit.esi.api.data.model.DatabaseDomain; import br.com.centralit.esi.api.data.model.Relationship; import br.com.centralit.esi.api.data.model.RelationshipColumn; import br.com.centralit.esi.api.data.service.CustomSQLService; @@ -493,11 +495,12 @@ public class DataObjectServiceImpl extends GenericServiceImpl dataObject.setGenerateController(false); dataObject.setGenerateForm(false); + this.save(dataObject, pack.getReplaceElement()); + if (pack.getExecuteDDL()) { + DataObjectUtil.buildDDL(dataObject); this.executeDDL(dataObject); } - - this.save(dataObject, pack.getReplaceElement()); } for (DataObject dataObject : dataObjects) { @@ -583,6 +586,7 @@ public class DataObjectServiceImpl extends GenericServiceImpl connection.commit(); } } catch (Exception e) { + System.out.println(dataObject.getDdl()); throw new EsiBusinessException(e); }finally{ this.dataSourceService.close(connection); @@ -633,14 +637,49 @@ public class DataObjectServiceImpl extends GenericServiceImpl sourceObject.setGenerateForm(sourceObject.getFormVersion() != null); sourceObject.setGenerateController(sourceObject.getFormVersion() != null); sourceObject.setDataSource(dataSourceService.save(sourceObject.getDataSource(), false)); - + + Database database = sourceObject.getDataSource().getDatabase(); if (sourceObject.getFields() != null) { for (DataColumn dataColumn: sourceObject.getColumns()) { dataColumn.setId(null); if (dataColumn.getWidget() != null) { dataColumn.setWidget(formWidgetService.findByName(dataColumn.getWidget().getName())); } - dataColumn.setType(dataTypeService.findByName(dataColumn.getType().getName())); + String name = dataColumn.getType().getName(); + dataColumn.setType(dataTypeService.findByName(name)); + if (dataColumn.getType() == null) { + String databaseType = dataColumn.getDatabaseType() != null ? dataColumn.getDatabaseType() : name; + for (DatabaseDomain domain : database.getTypes()) { + if (domain.getName().equalsIgnoreCase(databaseType)) { + dataColumn.setType(domain.getDataType()); + break; + } + } + } + if (dataColumn.getType() == null) { + throw new EsiBusinessException("Tipo de dados '"+name+"' não encontrado"); + } + + String databaseType = null; + boolean exists = false; + for (DatabaseDomain domain : database.getTypes()) { + if (domain.getDataType().getId().equals(dataColumn.getType().getId())) { + if (databaseType == null) { + databaseType = domain.getName(); + } + if (!UtilString.isNullOrEmpty(dataColumn.getDatabaseType()) && dataColumn.getDatabaseType().equalsIgnoreCase(domain.getName())) { + exists = true; + break; + } + } + } + if (!exists) { + dataColumn.setDatabaseType(databaseType); + } + + if (UtilString.isNullOrEmpty(dataColumn.getDatabaseType())) { + throw new EsiBusinessException("Tipo de dados '"+name+"' não encontrado no BD"); + } } for (Relationship relationship: sourceObject.getRelationships()) { relationship.setId(null); diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/pack/service/impl/PackServiceImpl.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/pack/service/impl/PackServiceImpl.java index ab99b0f..915b349 100644 --- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/pack/service/impl/PackServiceImpl.java +++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/pack/service/impl/PackServiceImpl.java @@ -132,44 +132,49 @@ public class PackServiceImpl extends GenericServiceImpl implements P @Override public Pack importPackage(Pack pack) { - pack.setElements(new ArrayList()); - if (pack.getDslrs() != null) { - for (DroolsDSLR dslr : pack.getDslrs()) { - dslr = droolsDSLRService.save(dslr, pack.getReplaceElement()); - pack.getElements().add(new PackElement(pack, PackElementTypeEnum.DSLR, dslr.getId(), dslr.getName(), dslr.getName())); + try { + pack.setElements(new ArrayList()); + if (pack.getDslrs() != null) { + for (DroolsDSLR dslr : pack.getDslrs()) { + dslr = droolsDSLRService.save(dslr, pack.getReplaceElement()); + pack.getElements().add(new PackElement(pack, PackElementTypeEnum.DSLR, dslr.getId(), dslr.getName(), dslr.getName())); + } } - } - if (pack.getBusinessRules() != null) { - for (BusinessRuleVersion businessRule : pack.getBusinessRules()) { - businessRule = (BusinessRuleVersion) businessRuleVersionService.save(businessRule, pack.getReplaceElement()); - pack.getElements().add(new PackElement(pack, PackElementTypeEnum.BUSINESS_RULE, businessRule.getFlow().getId(), businessRule.getFlow().getName(), businessRule.getFlow().getDescription())); + if (pack.getBusinessRules() != null) { + for (BusinessRuleVersion businessRule : pack.getBusinessRules()) { + businessRule = (BusinessRuleVersion) businessRuleVersionService.save(businessRule, pack.getReplaceElement()); + pack.getElements().add(new PackElement(pack, PackElementTypeEnum.BUSINESS_RULE, businessRule.getFlow().getId(), businessRule.getFlow().getName(), businessRule.getFlow().getDescription())); + } } - } - if (pack.getFlows() != null) { - for (FlowVersion flowVersion : pack.getFlows()) { - flowVersion = flowVersionService.save(flowVersion, pack.getReplaceElement()); - pack.getElements().add(new PackElement(pack, PackElementTypeEnum.FLOW, flowVersion.getFlow().getId(), flowVersion.getFlow().getName(), flowVersion.getFlow().getDescription())); + if (pack.getFlows() != null) { + for (FlowVersion flowVersion : pack.getFlows()) { + flowVersion = flowVersionService.save(flowVersion, pack.getReplaceElement()); + pack.getElements().add(new PackElement(pack, PackElementTypeEnum.FLOW, flowVersion.getFlow().getId(), flowVersion.getFlow().getName(), flowVersion.getFlow().getDescription())); + } } - } - if (pack.getDataObjects() != null) { - dataObjectService.importDataObjects(pack); - } - if (pack.getForms() != null) { - for (FormVersion form : pack.getForms()) { - form = (FormVersion) formVersionService.save(form, pack.getReplaceElement()); - pack.getElements().add(new PackElement(pack, PackElementTypeEnum.FORM, form.getResource().getId(), form.getResource().getName(), form.getResource().getDescription())); + if (pack.getDataObjects() != null) { + dataObjectService.importDataObjects(pack); } - } - if (pack.getBusinessProcess() != null) { - for (BusinessProcess businessProcess : pack.getBusinessProcess()) { - businessProcess = businessProcessService.save(businessProcess, pack.getReplaceElement()); - pack.getElements().add(new PackElement(pack, PackElementTypeEnum.BUSINESS_PROCESS, businessProcess.getId(), businessProcess.getName(), businessProcess.getDescription())); + if (pack.getForms() != null) { + for (FormVersion form : pack.getForms()) { + form = (FormVersion) formVersionService.save(form, pack.getReplaceElement()); + pack.getElements().add(new PackElement(pack, PackElementTypeEnum.FORM, form.getResource().getId(), form.getResource().getName(), form.getResource().getDescription())); + } } - } - if (pack.isNew()) { - return this.save(pack); - }else{ - return this.merge(pack); + if (pack.getBusinessProcess() != null) { + for (BusinessProcess businessProcess : pack.getBusinessProcess()) { + businessProcess = businessProcessService.save(businessProcess, pack.getReplaceElement()); + pack.getElements().add(new PackElement(pack, PackElementTypeEnum.BUSINESS_PROCESS, businessProcess.getId(), businessProcess.getName(), businessProcess.getDescription())); + } + } + if (pack.isNew()) { + return this.save(pack); + }else{ + return this.merge(pack); + } + } catch (Exception e) { + e.printStackTrace(); + throw e; } } diff --git a/cit-esi-web/src/main/java/br/com/centralit/listener/StartupListenerEsi.java b/cit-esi-web/src/main/java/br/com/centralit/listener/StartupListenerEsi.java index d28f610..8cc7be6 100644 --- a/cit-esi-web/src/main/java/br/com/centralit/listener/StartupListenerEsi.java +++ b/cit-esi-web/src/main/java/br/com/centralit/listener/StartupListenerEsi.java @@ -333,156 +333,108 @@ public class StartupListenerEsi extends UtilStartup implements ApplicationListen FormWidget widgetTextArea = formWidgetService.findByName("text-area"); // name, description, javaClass, allowSize, allowGeneratedValue, allowPrecision, allowAutoIncrement, width, widget - - DataType dataType = new DataType("bigint", "bigint (inteiro longo)", JavaClassEnum.BIG_INTEGER, false, true, false, true, 2, widgetInteger); - dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType)); - databaseDomainService.save(new DatabaseDomain(mySQL, dataType)); - databaseDomainService.save(new DatabaseDomain(postgres, dataType)); - - dataType = new DataType("int8", "int8 (inteiro longo)", JavaClassEnum.BIG_INTEGER, false, true, false, true, 2, widgetInteger); + DataType dataType = new DataType("bigint", "Big integer", JavaClassEnum.BIG_INTEGER, false, true, false, true, 2, widgetInteger); dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(postgres, dataType)); + databaseDomainService.save(new DatabaseDomain(sqlServer, "bigint", dataType)); + databaseDomainService.save(new DatabaseDomain(mySQL, "bigint", dataType)); + databaseDomainService.save(new DatabaseDomain(postgres, "bigint", dataType)); + databaseDomainService.save(new DatabaseDomain(postgres, "int8", dataType)); + databaseDomainService.save(new DatabaseDomain(oracle, "integer", dataType)); - dataType = new DataType("smallint", "smallint (inteiro)", JavaClassEnum.INTEGER, false, true, false, true, 2, widgetInteger); + dataType = new DataType("int", "Small integer", JavaClassEnum.INTEGER, false, true, false, true, 2, widgetInteger); dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType)); - databaseDomainService.save(new DatabaseDomain(mySQL, dataType)); - databaseDomainService.save(new DatabaseDomain(postgres, dataType)); - - dataType = new DataType("int", "int (inteiro)", JavaClassEnum.INTEGER, false, true, false, true, 2, widgetInteger); + databaseDomainService.save(new DatabaseDomain(sqlServer, "int", dataType)); + databaseDomainService.save(new DatabaseDomain(sqlServer, "smallint", dataType)); + databaseDomainService.save(new DatabaseDomain(mySQL, "smallint", dataType)); + databaseDomainService.save(new DatabaseDomain(mySQL, "int", dataType)); + databaseDomainService.save(new DatabaseDomain(postgres, "smallint", dataType)); + databaseDomainService.save(new DatabaseDomain(oracle, "integer", dataType)); + + dataType = new DataType("integer", "Integer", JavaClassEnum.INTEGER, false, true, false, true, 2, widgetInteger); dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType)); - databaseDomainService.save(new DatabaseDomain(mySQL, dataType)); + databaseDomainService.save(new DatabaseDomain(sqlServer, "integer", dataType)); + databaseDomainService.save(new DatabaseDomain(mySQL, "int", dataType)); + databaseDomainService.save(new DatabaseDomain(postgres, "integer", dataType)); + databaseDomainService.save(new DatabaseDomain(oracle, "integer", dataType)); - dataType = new DataType("integer", "integer (inteiro)", JavaClassEnum.INTEGER, false, true, false, true, 2, widgetInteger); + dataType = new DataType("boolean", "Boolean", JavaClassEnum.BOOLEAN, false, false, false, false, 2, widgetCheckbox); dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(postgres, dataType)); - databaseDomainService.save(new DatabaseDomain(oracle, dataType)); + databaseDomainService.save(new DatabaseDomain(sqlServer, "bit", dataType)); + databaseDomainService.save(new DatabaseDomain(mySQL, "bit", dataType)); + databaseDomainService.save(new DatabaseDomain(postgres, "bool", dataType)); + databaseDomainService.save(new DatabaseDomain(oracle, "integer", dataType)); - dataType = new DataType("bit", "bit (booleano)", JavaClassEnum.BOOLEAN, false, false, false, false, 2, widgetCheckbox); + dataType = new DataType("bigdecimal", "Big decimal", JavaClassEnum.BIG_DECIMAL, true, false, true, false, 2, widgetDecimal); dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType)); - databaseDomainService.save(new DatabaseDomain(mySQL, dataType)); - - dataType = new DataType("numeric", "numeric (decimal)", JavaClassEnum.BIG_DECIMAL, true, false, true, false, 2, widgetDecimal); + databaseDomainService.save(new DatabaseDomain(sqlServer, "float", dataType)); + databaseDomainService.save(new DatabaseDomain(sqlServer, "numeric", dataType)); + databaseDomainService.save(new DatabaseDomain(sqlServer, "decimal", dataType)); + databaseDomainService.save(new DatabaseDomain(mySQL, "float", dataType)); + databaseDomainService.save(new DatabaseDomain(mySQL, "numeric", dataType)); + databaseDomainService.save(new DatabaseDomain(mySQL, "decimal", dataType)); + databaseDomainService.save(new DatabaseDomain(postgres, "numeric", dataType)); + databaseDomainService.save(new DatabaseDomain(oracle, "number", dataType)); + + dataType = new DataType("float", "Float", JavaClassEnum.FLOAT, true, false, true, false, 2, widgetDecimal); dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType)); - databaseDomainService.save(new DatabaseDomain(mySQL, dataType)); - databaseDomainService.save(new DatabaseDomain(postgres, dataType)); - - dataType = new DataType("number", "number (decimal)", JavaClassEnum.BIG_DECIMAL, true, false, true, false, 2, widgetDecimal); + databaseDomainService.save(new DatabaseDomain(sqlServer, "float", dataType)); + databaseDomainService.save(new DatabaseDomain(sqlServer,"real", dataType)); + databaseDomainService.save(new DatabaseDomain(mySQL, "double", dataType)); + databaseDomainService.save(new DatabaseDomain(postgres, "numeric", dataType)); + databaseDomainService.save(new DatabaseDomain(postgres,"real", dataType)); + databaseDomainService.save(new DatabaseDomain(oracle, "number", dataType)); + + dataType = new DataType("currency", "Currency", JavaClassEnum.CURRENCY, false, false, false, false, 2, widgetMoney); dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(oracle, dataType)); + databaseDomainService.save(new DatabaseDomain(sqlServer, "money", dataType)); + databaseDomainService.save(new DatabaseDomain(sqlServer, "smallmoney", dataType)); + databaseDomainService.save(new DatabaseDomain(mySQL, "float", dataType)); + databaseDomainService.save(new DatabaseDomain(postgres, "money", dataType)); + databaseDomainService.save(new DatabaseDomain(oracle, "number", dataType)); - dataType = new DataType("decimal", "decimal", JavaClassEnum.BIG_DECIMAL, true, false, true, false, 2, widgetDecimal); + dataType = new DataType("date", "Date", JavaClassEnum.DATE, false, false, false, false, 2, widgetDate); dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType)); - databaseDomainService.save(new DatabaseDomain(mySQL, dataType)); + databaseDomainService.save(new DatabaseDomain(sqlServer, "datetime", dataType)); + databaseDomainService.save(new DatabaseDomain(sqlServer, "smalldatetime", dataType)); + databaseDomainService.save(new DatabaseDomain(mySQL, "datetime", dataType)); + databaseDomainService.save(new DatabaseDomain(postgres, "date", dataType)); + databaseDomainService.save(new DatabaseDomain(oracle, "date", dataType)); - dataType = new DataType("float", "float (decimal)", JavaClassEnum.FLOAT, true, false, true, false, 2, widgetDecimal); + dataType = new DataType("datetime", "Datetime", JavaClassEnum.DATE, false, false, false, false, 2, widgetDate); dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType)); - databaseDomainService.save(new DatabaseDomain(mySQL, dataType)); - - dataType = new DataType("double", "double (decimal)", JavaClassEnum.DOUBLE, true, false, true, false, 2, widgetDecimal); - dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(mySQL, dataType)); - - dataType = new DataType("real", "real (decimal)", JavaClassEnum.FLOAT, true, false, true, false, 2, widgetDecimal); - dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType)); - databaseDomainService.save(new DatabaseDomain(postgres, dataType)); + databaseDomainService.save(new DatabaseDomain(sqlServer, "datetime", dataType)); + databaseDomainService.save(new DatabaseDomain(mySQL, "timestamp", dataType)); + databaseDomainService.save(new DatabaseDomain(postgres, "timestamp", dataType)); + databaseDomainService.save(new DatabaseDomain(oracle, "timestamp", dataType)); - dataType = new DataType("smallmoney", "smallmoney (currency)", JavaClassEnum.CURRENCY, false, false, false, false, 2, widgetMoney); + dataType = new DataType("char", "Character", JavaClassEnum.STRING, true, false, false, false, 4, widgetText); dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType)); - - dataType = new DataType("money", "money (currency)", JavaClassEnum.CURRENCY, false, false, false, false, 2, widgetMoney); + databaseDomainService.save(new DatabaseDomain(sqlServer, "char", dataType)); + databaseDomainService.save(new DatabaseDomain(sqlServer, "nchar", dataType)); + databaseDomainService.save(new DatabaseDomain(mySQL, "char", dataType)); + databaseDomainService.save(new DatabaseDomain(postgres, "character", dataType)); + databaseDomainService.save(new DatabaseDomain(oracle, "char", dataType)); + databaseDomainService.save(new DatabaseDomain(oracle, "nchar", dataType)); + + dataType = new DataType("varchar", "Text", JavaClassEnum.STRING, true, false, false, false, 4, widgetText); dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType)); - databaseDomainService.save(new DatabaseDomain(postgres, dataType)); - - dataType = new DataType("smalldatetime", "smalldatetime (data)", JavaClassEnum.DATE, false, false, false, false, 2, widgetDate); + databaseDomainService.save(new DatabaseDomain(sqlServer, "varchar", dataType)); + databaseDomainService.save(new DatabaseDomain(sqlServer, "nvarchar", dataType)); + databaseDomainService.save(new DatabaseDomain(sqlServer, "varchar(max)", dataType)); + databaseDomainService.save(new DatabaseDomain(mySQL, "varchar", dataType)); + databaseDomainService.save(new DatabaseDomain(postgres, "varchar", dataType)); + databaseDomainService.save(new DatabaseDomain(oracle, "varchar2", dataType)); + databaseDomainService.save(new DatabaseDomain(oracle, "nvarchar2", dataType)); + databaseDomainService.save(new DatabaseDomain(oracle, "varchar", dataType)); + + dataType = new DataType("text", "Long text", JavaClassEnum.STRING, true, false, false, false, 6, widgetTextArea); dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType)); - - dataType = new DataType("date", "date (data)", JavaClassEnum.DATE, false, false, false, false, 2, widgetDate); - dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(postgres, dataType)); - databaseDomainService.save(new DatabaseDomain(oracle, dataType)); - - dataType = new DataType("datetime", "datetime (data)", JavaClassEnum.DATE, false, false, false, false, 2, widgetDate); - dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType)); - databaseDomainService.save(new DatabaseDomain(mySQL, dataType)); - - dataType = new DataType("timestamp", "timestamp (data e hora)", JavaClassEnum.DATE, false, false, false, false, 2, widgetDate); - dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(mySQL, dataType)); - databaseDomainService.save(new DatabaseDomain(postgres, dataType)); - databaseDomainService.save(new DatabaseDomain(oracle, dataType)); - - dataType = new DataType("char", "char (texto)", JavaClassEnum.STRING, true, false, false, false, 4, widgetText); - dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType)); - databaseDomainService.save(new DatabaseDomain(mySQL, dataType)); - databaseDomainService.save(new DatabaseDomain(oracle, dataType)); - - dataType = new DataType("character", "character (texto)", JavaClassEnum.STRING, true, false, false, false, 4, widgetText); - dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(postgres, dataType)); - - dataType = new DataType("nchar", "nchar (texto)", JavaClassEnum.STRING, true, false, false, false, 4, widgetText); - dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType)); - databaseDomainService.save(new DatabaseDomain(oracle, dataType)); - - dataType = new DataType("varchar", "varchar (texto)", JavaClassEnum.STRING, true, false, false, false, 4, widgetText); - dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType)); - databaseDomainService.save(new DatabaseDomain(mySQL, dataType)); - databaseDomainService.save(new DatabaseDomain(postgres, dataType)); - databaseDomainService.save(new DatabaseDomain(oracle, dataType)); - - dataType = new DataType("varchar(max)", "varchar max (texto)", JavaClassEnum.STRING, true, false, false, false, 6, widgetTextArea); - dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType)); - - dataType = new DataType("varchar2", "varchar2 (texto)", JavaClassEnum.STRING, true, false, false, false, 4, widgetText); - dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(oracle, dataType)); - - dataType = new DataType("nvarchar2", "nvarchar2 (texto)", JavaClassEnum.STRING, true, false, false, false, 4, widgetText); - dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(oracle, dataType)); - - dataType = new DataType("character varying", "character varying (texto)", JavaClassEnum.STRING, true, false, false, false, 4, widgetText); - dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(postgres, dataType)); - - dataType = new DataType("nvarchar", "nvarchar (texto)", JavaClassEnum.STRING, true, false, false, false, 4, widgetText); - dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType)); - - dataType = new DataType("text", "text (texto longo)", JavaClassEnum.STRING, true, false, false, false, 6, widgetTextArea); - dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType)); - databaseDomainService.save(new DatabaseDomain(mySQL, dataType)); - databaseDomainService.save(new DatabaseDomain(postgres, dataType)); - - dataType = new DataType("ntext", "ntext (texto longo)", JavaClassEnum.STRING, true, false, false, false, 6, widgetTextArea); - dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType)); - - dataType = new DataType("clob", "clob (texto longo)", JavaClassEnum.STRING, true, false, false, false, 6, widgetTextArea); - dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(oracle, dataType)); - - dataType = new DataType("nclob", "nclob (texto longo)", JavaClassEnum.STRING, true, false, false, false, 6, widgetTextArea); - dataType = dataTypeService.save(dataType); - databaseDomainService.save(new DatabaseDomain(oracle, dataType)); - + databaseDomainService.save(new DatabaseDomain(sqlServer, "text", dataType)); + databaseDomainService.save(new DatabaseDomain(sqlServer, "ntext", dataType)); + databaseDomainService.save(new DatabaseDomain(mySQL, "text", dataType)); + databaseDomainService.save(new DatabaseDomain(postgres, "text", dataType)); + databaseDomainService.save(new DatabaseDomain(oracle, "clob", dataType)); + databaseDomainService.save(new DatabaseDomain(oracle, "nclob", dataType)); } private void createDatabases() { @@ -2163,6 +2115,7 @@ public class StartupListenerEsi extends UtilStartup implements ApplicationListen internacionalizacaoList.add(new Internacionalizacao("ESI.OBJETO_DESTINO", "Objeto JSON que será atualizado", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("ESI.CADASTRO", "Cadastro", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("ESI.NOME_ATRIBUTO", "Nome para atributo de objeto", dominio, modulo)); + internacionalizacaoList.add(new Internacionalizacao("ESI.TIPO_BD", "Tipo no BD", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("ESI.TERMINO", "Término", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("ESI.MOVER_ESQUERDA", "Mover para esquerda", dominio, modulo)); internacionalizacaoList.add(new Internacionalizacao("ESI.CONEXAO_BANCO", "Conexão de Banco", dominio, modulo)); diff --git a/cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/DataObjectController.js b/cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/DataObjectController.js index 10976ea..e2743d5 100644 --- a/cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/DataObjectController.js +++ b/cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/DataObjectController.js @@ -73,6 +73,11 @@ citApp.controller('DataObjectController', ["$scope", "FlowRepository", "DataObje }); }); + $scope.dataTypes = []; + DataTypeRepository.getList().then(function(result) { + $scope.dataTypes = result; + }); + // Limpa formulário para novo cadastro $scope.resetForm = function() { $scope.columnChecked = undefined; @@ -170,7 +175,7 @@ citApp.controller('DataObjectController', ["$scope", "FlowRepository", "DataObje DataObjectRepository.get(dataObject.id).then(function(result) { $scope.dataObject = result.originalElement; - $scope.getDataTypes($scope.dataObject.dataSource); + $scope.getDatabaseDomains($scope.dataObject.dataSource); $scope.restoreRelationships(); @@ -221,19 +226,17 @@ citApp.controller('DataObjectController', ["$scope", "FlowRepository", "DataObje $scope.dataObject.dataSource = null; }; - $scope.getDataTypes = function(dataSource) { - $scope.dataTypes = []; + $scope.getDatabaseDomains = function(dataSource) { + $scope.databaseDomains = []; DataSourceRepository.get(dataSource.id).then(function(result) { - angular.forEach(result.originalElement.database.types, function(databaseDomain){ - $scope.dataTypes.push(databaseDomain.dataType); - }); + $scope.databaseDomains = result.database.types; }); }; $scope.setDataSource = function (item) { if(item && item.id) { $scope.dataObject.dataSource = item; - $scope.getDataTypes(item); + $scope.getDatabaseDomains(item); } }; @@ -599,10 +602,16 @@ citApp.controller('DataObjectController', ["$scope", "FlowRepository", "DataObje $scope.setColumType = function(type) { angular.forEach($scope.dataTypes, function(dataType){ - if (dataType.id == type) { + if (dataType.id == type.id) { $scope.column.type = dataType; } }); + $scope.column.databaseType = ''; + angular.forEach($scope.databaseDomains, function(domain){ + if (domain.dataType.id == type.id && $scope.column.databaseType == '') { + $scope.column.databaseType = domain.name; + } + }); }; $scope.generateForm = function() { diff --git a/cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/DatabaseController.js b/cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/DatabaseController.js index 0626b61..160940a 100644 --- a/cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/DatabaseController.js +++ b/cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/DatabaseController.js @@ -8,31 +8,15 @@ citApp.controller('DatabaseController', ["$scope", "DatabaseRepository", "DataTy DomainRepository.getEnumeratedDomain('DatabaseTypeEnum').then(function(result) { $scope.databaseTypes = result; }); - - var filterDataTypes = { - start : 1, - dir : 'asc', - sort : 'name', - limit : 999999, - fields: ['id', 'name'] - }; $scope.dataTypes = []; - - $scope.findDataTypes = function(){ - $scope.dataTypes = []; - DataTypeRepository.getListPage(filterDataTypes).then(function(result) { - angular.forEach(result.originalElement.objects, function(dataType){ - var item = {dataType: dataType}; - $scope.dataTypes.push(item); - }); - }); - }; + DataTypeRepository.getList().then(function(result) { + $scope.dataTypes = result; + }); // Limpa formulário para novo cadastro $scope.resetForm = function() { $scope.limparDatabase(); - $scope.findDataTypes(); $scope.edit = true; $timeout(function(){ $scope.databaseForm.$submitted = false; @@ -98,13 +82,37 @@ citApp.controller('DatabaseController', ["$scope", "DatabaseRepository", "DataTy $scope.setLoadingGet(true); DatabaseRepository.get(database.id).then(function(result) { + $scope.domainChecked = null; + $scope.domain = null; $scope.database = result.originalElement; $scope.edit = edit; - $scope.findDataTypes(); $scope.setLoading(false); }); }; + $scope.checkDomain = function(index, domain) { + domain.$index = index; + $scope.domainChecked = domain; + }; + + $scope.newDomain = function(){ + $scope.database.types.push({}); + }; + $scope.removeDomain = function(){ + if(!$scope.domainChecked) { + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO')); + return; + } else { + $scope.$openModalConfirm({ + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'), + callback: function () { + $scope.$modalConfirmInstance.dismiss('cancel'); + $scope.database.types.splice($scope.domainChecked.$index, 1); + } + }); + } + }; + }]); diff --git a/cit-esi-web/src/main/webapp/html/dataObject/dataObjectEdit.html b/cit-esi-web/src/main/webapp/html/dataObject/dataObjectEdit.html index 3be160b..3f87cb5 100644 --- a/cit-esi-web/src/main/webapp/html/dataObject/dataObjectEdit.html +++ b/cit-esi-web/src/main/webapp/html/dataObject/dataObjectEdit.html @@ -149,7 +149,7 @@ LABEL.NOME LABEL.DESCRICAO - LABEL.TIPO + ESI.TIPO_BD @@ -164,7 +164,7 @@ {{theColumn.name}} {{theColumn.description}} - {{theColumn.type.name}} + {{theColumn.databaseType}} LABEL.TABELA_VAZIA diff --git a/cit-esi-web/src/main/webapp/html/dataObject/dialogDataColumn.html b/cit-esi-web/src/main/webapp/html/dataObject/dialogDataColumn.html index 32cd677..3f7488c 100644 --- a/cit-esi-web/src/main/webapp/html/dataObject/dialogDataColumn.html +++ b/cit-esi-web/src/main/webapp/html/dataObject/dialogDataColumn.html @@ -21,7 +21,7 @@ ESI.COLUNA
-
+
@@ -30,15 +30,19 @@
-
- +
+ -
+
+
+ +
-
+
diff --git a/cit-esi-web/src/main/webapp/html/database/databaseEdit.html b/cit-esi-web/src/main/webapp/html/database/databaseEdit.html index f60bef4..1002692 100644 --- a/cit-esi-web/src/main/webapp/html/database/databaseEdit.html +++ b/cit-esi-web/src/main/webapp/html/database/databaseEdit.html @@ -47,7 +47,7 @@
- ESI.DADOS + ESI.ABA.IDENTIFICACAO
@@ -62,20 +62,53 @@
-
-
-
- - - - {{$item.dataType.name}} - - {{databaseDomain.dataType.name}} - - -
-
-
+
+ ESI.TIPOS_DADOS + +
+
+
+
+ + + +
+ + + + + + + + + + + + + + + +
LABEL.TIPOESI.TIPO_BD
+ + + + + + +
+
+
+
+
-- libgit2 0.21.2