|
@@ -112,7 +112,7 @@ public class ReportServiceImpl implements ReportService {
|
|
List<Map<String, Object>> maps = sqlRunnerList(keySql);
|
|
List<Map<String, Object>> maps = sqlRunnerList(keySql);
|
|
if(CollectionUtils.isEmpty(maps)){
|
|
if(CollectionUtils.isEmpty(maps)){
|
|
log.error("报表"+report.getName()+"无符合条件主键数据"+keySql);
|
|
log.error("报表"+report.getName()+"无符合条件主键数据"+keySql);
|
|
- throw new CostException("报表"+report.getName()+"无符合条件主键数据"+keySql);
|
|
|
|
|
|
+ throw new CostException("报表"+report.getName()+"无符合条件主键数据");
|
|
}
|
|
}
|
|
|
|
|
|
List<CostColumn> calcFormulaList = dataSourceGroup.get(NumberConstant.ONE);
|
|
List<CostColumn> calcFormulaList = dataSourceGroup.get(NumberConstant.ONE);
|
|
@@ -143,6 +143,9 @@ public class ReportServiceImpl implements ReportService {
|
|
List<List<ReportVo>> vos = new ArrayList<>();
|
|
List<List<ReportVo>> vos = new ArrayList<>();
|
|
ReportCodeModifyVo reportCodeModifyVo = new ReportCodeModifyVo();
|
|
ReportCodeModifyVo reportCodeModifyVo = new ReportCodeModifyVo();
|
|
for(Map<String, Object> result:maps){
|
|
for(Map<String, Object> result:maps){
|
|
|
|
+ if(CollectionUtils.isEmpty(result)){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
Map<String, Object> keyParameter = result.keySet().stream().collect(Collectors.toMap(s -> s, result::get, (a, b) -> b));
|
|
Map<String, Object> keyParameter = result.keySet().stream().collect(Collectors.toMap(s -> s, result::get, (a, b) -> b));
|
|
List<ReportVo> dataVo = new ArrayList<>();
|
|
List<ReportVo> dataVo = new ArrayList<>();
|
|
//sql报表列
|
|
//sql报表列
|
|
@@ -150,8 +153,9 @@ public class ReportServiceImpl implements ReportService {
|
|
for(CostReportColumn column:sqlReportColumn){
|
|
for(CostReportColumn column:sqlReportColumn){
|
|
Integer primaryKey = column.getPrimaryKey();
|
|
Integer primaryKey = column.getPrimaryKey();
|
|
if(primaryKey.equals(NumberConstant.ONE)){
|
|
if(primaryKey.equals(NumberConstant.ONE)){
|
|
- Map<String,String> modify = new HashMap<>();
|
|
|
|
if(result.size()>1){
|
|
if(result.size()>1){
|
|
|
|
+ Map<String,String> modify = new HashMap<>();
|
|
|
|
+
|
|
for(String s:result.keySet()){
|
|
for(String s:result.keySet()){
|
|
ReportVo vo = new ReportVo();
|
|
ReportVo vo = new ReportVo();
|
|
vo.setCode(column.getReportCode()+s);
|
|
vo.setCode(column.getReportCode()+s);
|
|
@@ -159,15 +163,17 @@ public class ReportServiceImpl implements ReportService {
|
|
dataVo.add(vo);
|
|
dataVo.add(vo);
|
|
modify.put(column.getReportCode()+s,s);
|
|
modify.put(column.getReportCode()+s,s);
|
|
}
|
|
}
|
|
|
|
+ reportCodeModifyVo.setReportCode(column.getColumnCode());
|
|
|
|
+ reportCodeModifyVo.setModifyReportCode(modify);
|
|
}else {
|
|
}else {
|
|
ReportVo vo = new ReportVo();
|
|
ReportVo vo = new ReportVo();
|
|
- vo.setCode(column.getReportCode()+result.keySet().stream().findFirst().get());
|
|
|
|
|
|
+ vo.setCode(column.getColumnCode().toString());
|
|
vo.setValue(result.values().stream().findFirst().get());
|
|
vo.setValue(result.values().stream().findFirst().get());
|
|
- modify.put(vo.getCode(),result.keySet().stream().findFirst().get());
|
|
|
|
|
|
+// modify.put(vo.getCode(),result.keySet().stream().findFirst().get());
|
|
dataVo.add(vo);
|
|
dataVo.add(vo);
|
|
}
|
|
}
|
|
- reportCodeModifyVo.setReportCode(column.getColumnCode());
|
|
|
|
- reportCodeModifyVo.setModifyReportCode(modify);
|
|
|
|
|
|
+// reportCodeModifyVo.setReportCode(column.getColumnCode());
|
|
|
|
+// reportCodeModifyVo.setModifyReportCode(modify);
|
|
}else {
|
|
}else {
|
|
ReportVo vo = new ReportVo();
|
|
ReportVo vo = new ReportVo();
|
|
vo.setCode(column.getColumnCode().toString());
|
|
vo.setCode(column.getColumnCode().toString());
|
|
@@ -183,8 +189,12 @@ public class ReportServiceImpl implements ReportService {
|
|
Object o = sqlRunner(handleSql);
|
|
Object o = sqlRunner(handleSql);
|
|
if(dataType != null&&dataType.equals(NumberConstant.THREE)){
|
|
if(dataType != null&&dataType.equals(NumberConstant.THREE)){
|
|
Integer decimalPlace = col.getDecimalPlace();
|
|
Integer decimalPlace = col.getDecimalPlace();
|
|
- BigDecimal value = new BigDecimal(o.toString());
|
|
|
|
- vo.setValue(value.setScale(decimalPlace,RoundingMode.HALF_UP));
|
|
|
|
|
|
+ if(o.equals("")){
|
|
|
|
+ vo.setValue(BigDecimal.ZERO.setScale(decimalPlace,RoundingMode.HALF_UP));
|
|
|
|
+ }else {
|
|
|
|
+ BigDecimal value = new BigDecimal(o.toString());
|
|
|
|
+ vo.setValue(value.setScale(decimalPlace,RoundingMode.HALF_UP));
|
|
|
|
+ }
|
|
}else {
|
|
}else {
|
|
vo.setValue(o);
|
|
vo.setValue(o);
|
|
}
|
|
}
|
|
@@ -198,8 +208,9 @@ public class ReportServiceImpl implements ReportService {
|
|
for(CostReportColumn column:calcReportColumn){
|
|
for(CostReportColumn column:calcReportColumn){
|
|
Integer primaryKey = column.getPrimaryKey();
|
|
Integer primaryKey = column.getPrimaryKey();
|
|
if(primaryKey.equals(NumberConstant.ONE)){
|
|
if(primaryKey.equals(NumberConstant.ONE)){
|
|
- Map<String,String> modify = new HashMap<>();
|
|
|
|
if(result.size()>1){
|
|
if(result.size()>1){
|
|
|
|
+ Map<String,String> modify = new HashMap<>();
|
|
|
|
+
|
|
for(String s:result.keySet()){
|
|
for(String s:result.keySet()){
|
|
ReportVo vo = new ReportVo();
|
|
ReportVo vo = new ReportVo();
|
|
vo.setCode(column.getReportCode()+s);
|
|
vo.setCode(column.getReportCode()+s);
|
|
@@ -207,15 +218,14 @@ public class ReportServiceImpl implements ReportService {
|
|
dataVo.add(vo);
|
|
dataVo.add(vo);
|
|
modify.put(column.getReportCode()+s,s);
|
|
modify.put(column.getReportCode()+s,s);
|
|
}
|
|
}
|
|
|
|
+ reportCodeModifyVo.setReportCode(column.getColumnCode());
|
|
|
|
+ reportCodeModifyVo.setModifyReportCode(modify);
|
|
}else {
|
|
}else {
|
|
ReportVo vo = new ReportVo();
|
|
ReportVo vo = new ReportVo();
|
|
- vo.setCode(column.getReportCode()+result.keySet().stream().findFirst().get());
|
|
|
|
|
|
+ vo.setCode(column.getColumnCode().toString());
|
|
vo.setValue(result.values().stream().findFirst().get());
|
|
vo.setValue(result.values().stream().findFirst().get());
|
|
- modify.put(vo.getCode(),result.keySet().stream().findFirst().get());
|
|
|
|
dataVo.add(vo);
|
|
dataVo.add(vo);
|
|
}
|
|
}
|
|
- reportCodeModifyVo.setReportCode(column.getColumnCode());
|
|
|
|
- reportCodeModifyVo.setModifyReportCode(modify);
|
|
|
|
}else {
|
|
}else {
|
|
ReportVo vo = new ReportVo();
|
|
ReportVo vo = new ReportVo();
|
|
vo.setCode(column.getColumnCode().toString());
|
|
vo.setCode(column.getColumnCode().toString());
|
|
@@ -233,10 +243,8 @@ public class ReportServiceImpl implements ReportService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
vos.add(dataVo);
|
|
vos.add(dataVo);
|
|
}
|
|
}
|
|
-
|
|
|
|
List<ReportTitleVo> titleVos = new ArrayList<>();
|
|
List<ReportTitleVo> titleVos = new ArrayList<>();
|
|
for(CostReportColumn column:reportColumns){
|
|
for(CostReportColumn column:reportColumns){
|
|
Integer primaryKey = column.getPrimaryKey();
|
|
Integer primaryKey = column.getPrimaryKey();
|
|
@@ -261,7 +269,7 @@ public class ReportServiceImpl implements ReportService {
|
|
vo.setName(name);
|
|
vo.setName(name);
|
|
if(!CollectionUtils.isEmpty(columnSortMap)){
|
|
if(!CollectionUtils.isEmpty(columnSortMap)){
|
|
Integer sort = columnSortMap.get(columnName);
|
|
Integer sort = columnSortMap.get(columnName);
|
|
- vo.setSort(sort);
|
|
|
|
|
|
+ vo.setSort(sort != null ? sort : column.getSort());
|
|
}else {
|
|
}else {
|
|
vo.setSort(column.getSort());
|
|
vo.setSort(column.getSort());
|
|
}
|
|
}
|
|
@@ -412,15 +420,15 @@ public class ReportServiceImpl implements ReportService {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
- private static ReportTitleVo getReportTitleVo(String column, String column1, CostReportColumn column2, Map<Long, List<CostReportRedirect>> reportRedirectMap, ReportCodeModifyVo reportCodeModifyVo, Map<Long, CostColumn> map) {
|
|
|
|
|
|
+ private static ReportTitleVo getReportTitleVo(String column, String columnName, CostReportColumn reportColumn, Map<Long, List<CostReportRedirect>> reportRedirectMap, ReportCodeModifyVo reportCodeModifyVo, Map<Long, CostColumn> map) {
|
|
ReportTitleVo vo = new ReportTitleVo();
|
|
ReportTitleVo vo = new ReportTitleVo();
|
|
vo.setCode(column);
|
|
vo.setCode(column);
|
|
- vo.setName(column1);
|
|
|
|
- vo.setSort(column2.getSort()+100);
|
|
|
|
- vo.setHide(column2.getHide());
|
|
|
|
- vo.setFreeze(column2.getFreeze());
|
|
|
|
- vo.setColumnName(column2.getColumnName());
|
|
|
|
- vo.setSortStatus(column2.getSortStatus());
|
|
|
|
|
|
+ vo.setName(columnName);
|
|
|
|
+ vo.setSort(reportColumn.getSort()+100);
|
|
|
|
+ vo.setHide(reportColumn.getHide());
|
|
|
|
+ vo.setFreeze(reportColumn.getFreeze());
|
|
|
|
+ vo.setColumnName(reportColumn.getColumnName());
|
|
|
|
+ vo.setSortStatus(reportColumn.getSortStatus());
|
|
CostColumn computeColumn = map.get(Long.valueOf(column));
|
|
CostColumn computeColumn = map.get(Long.valueOf(column));
|
|
if(Objects.nonNull(computeColumn)){
|
|
if(Objects.nonNull(computeColumn)){
|
|
vo.setDataType(computeColumn.getDataType());
|
|
vo.setDataType(computeColumn.getDataType());
|
|
@@ -440,7 +448,7 @@ public class ReportServiceImpl implements ReportService {
|
|
// vo.setRedirectParameter(redirect.getRedirectParameter());
|
|
// vo.setRedirectParameter(redirect.getRedirectParameter());
|
|
// }
|
|
// }
|
|
if(!CollectionUtils.isEmpty(primary)){
|
|
if(!CollectionUtils.isEmpty(primary)){
|
|
- List<CostReportRedirect> reportRedirects = reportRedirectMap.get(column2.getColumnCode());
|
|
|
|
|
|
+ List<CostReportRedirect> reportRedirects = reportRedirectMap.get(reportColumn.getColumnCode());
|
|
if(!CollectionUtils.isEmpty(reportRedirects)){
|
|
if(!CollectionUtils.isEmpty(reportRedirects)){
|
|
List<RedirectData> redirectDataList = new ArrayList<>();
|
|
List<RedirectData> redirectDataList = new ArrayList<>();
|
|
for(CostReportRedirect redirect:reportRedirects){
|
|
for(CostReportRedirect redirect:reportRedirects){
|
|
@@ -455,7 +463,7 @@ public class ReportServiceImpl implements ReportService {
|
|
vo.setRedirectData(redirectDataList);
|
|
vo.setRedirectData(redirectDataList);
|
|
}
|
|
}
|
|
}else {
|
|
}else {
|
|
- List<CostReportRedirect> reportRedirects = reportRedirectMap.get(column2.getColumnCode());
|
|
|
|
|
|
+ List<CostReportRedirect> reportRedirects = reportRedirectMap.get(reportColumn.getColumnCode());
|
|
if(!CollectionUtils.isEmpty(reportRedirects)){
|
|
if(!CollectionUtils.isEmpty(reportRedirects)){
|
|
List<RedirectData> redirectDataList = new ArrayList<>();
|
|
List<RedirectData> redirectDataList = new ArrayList<>();
|
|
for(CostReportRedirect redirect:reportRedirects){
|
|
for(CostReportRedirect redirect:reportRedirects){
|
|
@@ -500,7 +508,7 @@ public class ReportServiceImpl implements ReportService {
|
|
}
|
|
}
|
|
if(sql.contains("#")){
|
|
if(sql.contains("#")){
|
|
log.error("sql 所需条件未全部传递,请确认后再进行查询"+sql);
|
|
log.error("sql 所需条件未全部传递,请确认后再进行查询"+sql);
|
|
- throw new CostException("sql 所需条件未全部传递,请确认后再进行查询"+sql);
|
|
|
|
|
|
+ throw new CostException("sql 所需条件未全部传递,请确认后再进行查询");
|
|
}
|
|
}
|
|
return sql;
|
|
return sql;
|
|
}
|
|
}
|
|
@@ -552,7 +560,7 @@ public class ReportServiceImpl implements ReportService {
|
|
}
|
|
}
|
|
if(sql.contains("#")){
|
|
if(sql.contains("#")){
|
|
log.error("sql 所需条件未全部传递,请确认后再进行查询"+sql);
|
|
log.error("sql 所需条件未全部传递,请确认后再进行查询"+sql);
|
|
- throw new CostException("sql 所需条件未全部传递,请确认后再进行查询"+sql);
|
|
|
|
|
|
+ throw new CostException("sql 所需条件未全部传递,请确认后再进行查询");
|
|
}
|
|
}
|
|
return sql;
|
|
return sql;
|
|
}
|
|
}
|