|
@@ -565,6 +565,7 @@ public abstract class AutomaticReportTableValidate implements ReportTableValidat
|
|
|
// String policyId = dataForm.getString("policyId");
|
|
|
String policyId = dataForm.getString("chart-item-group");
|
|
|
|
|
|
+ String dataValueType = dataForm.getString("dataValueType");
|
|
|
String valueType = dataForm.getString("valueType");
|
|
|
Integer bucketType = dataForm.getInteger("bucketType");
|
|
|
|
|
@@ -626,22 +627,76 @@ public abstract class AutomaticReportTableValidate implements ReportTableValidat
|
|
|
//如果为饼图
|
|
|
} else if (chartType.equals(ConstantStr.PIE_CHART)) {
|
|
|
//因为饼图只有一个点位
|
|
|
- ReportDataPolicyItem first = itemScaleList.get(0);
|
|
|
- Integer scale = first.getScale();
|
|
|
-
|
|
|
- List<Item> validDataList = splitData(null, itemDataMap.get(policyItemIdList.get(0)), sTime, eTime, valueTakingMode, bucketType, bucketValue, scale, defaultScale);
|
|
|
- //itemDataMap.get(policyItemIdList.get(0));
|
|
|
- //生成series的数据
|
|
|
- List<JSONObject> serieDataList = new ArrayList<>();
|
|
|
- if(Blank.isNotEmpty(validDataList)){
|
|
|
- serieDataList = validDataList.stream().map(v -> {
|
|
|
+// ReportDataPolicyItem first = itemScaleList.get(0);
|
|
|
+// Integer scale = first.getScale();
|
|
|
+//
|
|
|
+// List<Item> validDataList = splitData(dataValueType, itemDataMap.get(policyItemIdList.get(0)), sTime, eTime, valueTakingMode, bucketType, bucketValue, scale, defaultScale);
|
|
|
+ List<List<Item>> serieDataList = new ArrayList<>();
|
|
|
+ for (String policyItemId : policyItemIdList) {
|
|
|
+ Optional<ReportDataPolicyItem> first = itemScaleList.stream()
|
|
|
+ .filter((item) -> policyItemId.equals(item.getId().toString()))
|
|
|
+ .findFirst();
|
|
|
+ Integer scale = null;
|
|
|
+ if (first.isPresent()) {
|
|
|
+ scale = first.get().getScale();
|
|
|
+ //log.info("自动报表:chart.policyItemId=" + policyItemId + ",scale=" + scale);
|
|
|
+ }
|
|
|
+ List<Item> validDataList = splitData(dataValueType, itemDataMap.get(policyItemId), sTime, eTime, valueTakingMode, bucketType, bucketValue, scale, defaultScale);
|
|
|
+ serieDataList.add(validDataList);
|
|
|
+ }
|
|
|
+ List<List<JSONObject>> jsonitemList = new ArrayList<>();
|
|
|
+ for (List<Item> list : serieDataList) {
|
|
|
+ List<JSONObject> item = list.stream().map(v -> {
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
jsonObject.put("value", v.getValue());
|
|
|
- jsonObject.put("name", v.getTime());
|
|
|
+ if(v.getName()!=null){
|
|
|
+ jsonObject.put("name", v.getName());
|
|
|
+ }else{
|
|
|
+ jsonObject.put("name", v.getTime());
|
|
|
+ }
|
|
|
return jsonObject;
|
|
|
}).collect(Collectors.toList());
|
|
|
+ jsonitemList.add(item);
|
|
|
}
|
|
|
- series.getJSONObject(0).put("data", serieDataList);
|
|
|
+ //数组回退一层
|
|
|
+ List<JSONObject> pieserieData = new ArrayList<>();
|
|
|
+ if(items.size()>1){
|
|
|
+ for (List<JSONObject> jsonObjects : jsonitemList) {
|
|
|
+ JSONObject object = jsonObjects.get(0);
|
|
|
+ String itemName = object.getString("name");
|
|
|
+ //title,value
|
|
|
+ for (int j = 0; j < items.size(); j++) {
|
|
|
+ JSONObject obj = items.getJSONObject(j);
|
|
|
+ if (obj.getString("value").equals(itemName)) {
|
|
|
+ object.put("name", obj.getString("title"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ pieserieData.add(object);
|
|
|
+ }
|
|
|
+ }else if(items.size()==1){
|
|
|
+ for (List<JSONObject> jsonObjects : jsonitemList) {
|
|
|
+ JSONObject object = jsonObjects.get(0);
|
|
|
+ for(int j=0;j<jsonObjects.size();j++){
|
|
|
+ pieserieData.add(jsonObjects.get(j));
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ //itemDataMap.get(policyItemIdList.get(0));
|
|
|
+ //生成series的数据
|
|
|
+// List<JSONObject> serieDataList = new ArrayList<>();
|
|
|
+// if(Blank.isNotEmpty(validDataList)){
|
|
|
+// serieDataList = validDataList.stream().map(v -> {
|
|
|
+// JSONObject jsonObject = new JSONObject();
|
|
|
+// jsonObject.put("value", v.getValue());
|
|
|
+// jsonObject.put("name", v.getTime());
|
|
|
+// return jsonObject;
|
|
|
+// }).collect(Collectors.toList());
|
|
|
+// }
|
|
|
+ series.getJSONObject(0).put("data", pieserieData);
|
|
|
}
|
|
|
return chartJson;
|
|
|
}
|
|
@@ -760,7 +815,8 @@ public abstract class AutomaticReportTableValidate implements ReportTableValidat
|
|
|
.value(CalculateDataFactory.getCalculateData(valueTakingMode).calculateData(
|
|
|
itemList.stream()
|
|
|
.map(Item::getValue).collect(Collectors.toList()), scale, defaultScale))
|
|
|
- .time(startDateTime.format(DateTimeFormatter.ofPattern(timePattern))));
|
|
|
+ .time(startDateTime.format(DateTimeFormatter.ofPattern(timePattern)))
|
|
|
+ .name(itemList.get(0).getName()));
|
|
|
}
|
|
|
return newItemList;
|
|
|
}
|