mifosx-195 report maintenance
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
|
||||
ALTER TABLE stretchy_report_parameter
|
||||
DROP INDEX `report_id_name_UNIQUE` ;
|
||||
+14
-10
@@ -6,6 +6,7 @@
|
||||
package org.mifosplatform.infrastructure.dataqueries.domain;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -58,13 +59,12 @@ public class Report extends AbstractPersistable<Long> {
|
||||
|
||||
@Column(name = "report_sql")
|
||||
private String reportSql;
|
||||
|
||||
|
||||
@LazyCollection(LazyCollectionOption.FALSE)
|
||||
@OneToMany(cascade = CascadeType.ALL, mappedBy = "report")
|
||||
private Set<ReportParameterUsage> reportParameterUsages = null;
|
||||
@OneToMany(cascade = CascadeType.ALL, mappedBy = "report", orphanRemoval = true)
|
||||
private Set<ReportParameterUsage> reportParameterUsages = new HashSet<ReportParameterUsage>();
|
||||
|
||||
public static Report fromJson(
|
||||
final Set<ReportParameterUsage> reportParameterUsages,
|
||||
final JsonCommand command) {
|
||||
|
||||
String reportName = null;
|
||||
@@ -94,8 +94,7 @@ public class Report extends AbstractPersistable<Long> {
|
||||
reportSql = command.stringValueOfParameterNamed("reportSql");
|
||||
|
||||
return new Report(reportName, reportType, reportSubType,
|
||||
reportCategory, description, useReport, reportSql,
|
||||
reportParameterUsages);
|
||||
reportCategory, description, useReport, reportSql);
|
||||
}
|
||||
|
||||
protected Report() {
|
||||
@@ -105,8 +104,7 @@ public class Report extends AbstractPersistable<Long> {
|
||||
public Report(final String reportName, final String reportType,
|
||||
final String reportSubType, final String reportCategory,
|
||||
final String description, final boolean useReport,
|
||||
final String reportSql,
|
||||
final Set<ReportParameterUsage> reportParameterUsages) {
|
||||
final String reportSql) {
|
||||
this.reportName = reportName;
|
||||
this.reportType = reportType;
|
||||
this.reportSubType = reportSubType;
|
||||
@@ -115,7 +113,6 @@ public class Report extends AbstractPersistable<Long> {
|
||||
this.coreReport = false;
|
||||
this.useReport = useReport;
|
||||
this.reportSql = reportSql;
|
||||
this.reportParameterUsages = reportParameterUsages;
|
||||
validate();
|
||||
}
|
||||
|
||||
@@ -286,6 +283,11 @@ public class Report extends AbstractPersistable<Long> {
|
||||
return reportParameterUsages;
|
||||
}
|
||||
|
||||
public void setReportParameterUsages(
|
||||
Set<ReportParameterUsage> reportParameterUsages) {
|
||||
this.reportParameterUsages = reportParameterUsages;
|
||||
}
|
||||
|
||||
public boolean update(
|
||||
final Set<ReportParameterUsage> newReportParameterUsages) {
|
||||
if (newReportParameterUsages == null)
|
||||
@@ -296,7 +298,9 @@ public class Report extends AbstractPersistable<Long> {
|
||||
|
||||
if (!(this.reportParameterUsages.equals(newReportParameterUsages))) {
|
||||
updated = true;
|
||||
this.reportParameterUsages = newReportParameterUsages;
|
||||
this.reportParameterUsages.clear();
|
||||
|
||||
this.reportParameterUsages.addAll(newReportParameterUsages);
|
||||
}
|
||||
} else {
|
||||
updated = true;
|
||||
|
||||
+3
-5
@@ -14,10 +14,8 @@ import org.springframework.data.jpa.domain.AbstractPersistable;
|
||||
@Table(name = "stretchy_parameter")
|
||||
public class ReportParameter extends AbstractPersistable<Long> {
|
||||
|
||||
|
||||
protected ReportParameter() {
|
||||
//
|
||||
}
|
||||
|
||||
protected ReportParameter() {
|
||||
//
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ import org.springframework.data.jpa.domain.AbstractPersistable;
|
||||
@Entity
|
||||
@Table(name = "stretchy_report_parameter")
|
||||
public class ReportParameterUsage extends AbstractPersistable<Long> {
|
||||
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
@ManyToOne(optional = false)
|
||||
@JoinColumn(name = "report_id", nullable = false)
|
||||
|
||||
+29
-32
@@ -71,19 +71,16 @@ public class ReportWritePlatformServiceImpl implements
|
||||
|
||||
this.fromApiJsonDeserializer.validate(command.json());
|
||||
|
||||
final Report report = Report.fromJson(command);
|
||||
final Set<ReportParameterUsage> reportParameterUsages = assembleSetOfReportParameterUsages(
|
||||
null, command);
|
||||
final Report report = Report.fromJson(reportParameterUsages,
|
||||
command);
|
||||
report, command);
|
||||
if (reportParameterUsages != null) {
|
||||
for (ReportParameterUsage rpu : reportParameterUsages) {
|
||||
rpu.setReport(report);
|
||||
}
|
||||
report.setReportParameterUsages(reportParameterUsages);
|
||||
}
|
||||
this.reportRepository.save(report);
|
||||
|
||||
final Permission permission = new Permission("report",
|
||||
report.getReportName(), "READ");
|
||||
this.reportRepository.save(report);
|
||||
this.permissionRepository.save(permission);
|
||||
|
||||
return new CommandProcessingResultBuilder()
|
||||
@@ -188,6 +185,10 @@ public class ReportWritePlatformServiceImpl implements
|
||||
|
||||
private Set<ReportParameterUsage> assembleSetOfReportParameterUsages(
|
||||
final Report report, final JsonCommand command) {
|
||||
if (report == null) {
|
||||
throw new PlatformDataIntegrityException("system.error",
|
||||
"report parameter is null; ");
|
||||
}
|
||||
|
||||
if (command.parameterExists("reportParameters")) {
|
||||
Set<ReportParameterUsage> reportParameterUsages = new HashSet<ReportParameterUsage>();
|
||||
@@ -223,36 +224,32 @@ public class ReportWritePlatformServiceImpl implements
|
||||
}
|
||||
|
||||
ReportParameterUsage reportParameterUsage = null;
|
||||
if (report == null) {
|
||||
if (jsonObject.has("id")) {
|
||||
final String idStr = jsonObject.get("id").getAsString();
|
||||
if (!(idStr.equals("")))
|
||||
id = Long.parseLong(idStr);
|
||||
}
|
||||
|
||||
if (id == null) {
|
||||
reportParameterUsage = new ReportParameterUsage(report,
|
||||
parameter, reportParameterName);
|
||||
} else {
|
||||
if (jsonObject.has("id")) {
|
||||
final String idStr = jsonObject.get("id")
|
||||
.getAsString();
|
||||
if (!(idStr.equals("")))
|
||||
id = Long.parseLong(idStr);
|
||||
}
|
||||
if (id == null) {
|
||||
reportParameterUsage = new ReportParameterUsage(
|
||||
report, parameter, reportParameterName);
|
||||
} else {
|
||||
reportParameterUsage = rpuById(report, id);
|
||||
reportParameterUsage = rpuById(report, id);
|
||||
|
||||
if (reportParameterUsage == null) {
|
||||
throw new PlatformDataIntegrityException(
|
||||
"error.msg.supplied.parameter.id.doesnt.exist",
|
||||
"Supplied parameterId column doesn't Exist",
|
||||
id);
|
||||
if (reportParameterUsage == null) {
|
||||
throw new PlatformDataIntegrityException(
|
||||
"error.msg.supplied.parameter.id.doesnt.exist",
|
||||
"Supplied parameterId column doesn't Exist",
|
||||
id);
|
||||
}
|
||||
|
||||
if (parameter != null)
|
||||
reportParameterUsage.setParameter(parameter);
|
||||
|
||||
if (reportParameterName != null) {
|
||||
reportParameterUsage
|
||||
.setReportParameterName(reportParameterName);
|
||||
}
|
||||
|
||||
if (parameter != null)
|
||||
reportParameterUsage.setParameter(parameter);
|
||||
|
||||
if (reportParameterName != null)
|
||||
reportParameterUsage
|
||||
.setReportParameterName(reportParameterName);
|
||||
}
|
||||
}
|
||||
|
||||
reportParameterUsages.add(reportParameterUsage);
|
||||
|
||||
Reference in New Issue
Block a user