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