|
@@ -228,6 +228,45 @@ public class ParkSystemServiceImpl implements ParkSystemService {
|
|
|
return ResponseBuilder.ok(Levi.by("inCount", inCountResult.get()).set("outCount", outCountResult.get()).set("inPercent", EnergyUtils.getPercent(inCountResult.get().doubleValue(), inCountOldResult.get().doubleValue())).set("outPercent", EnergyUtils.getPercent(outCountResult.get().doubleValue(), outCountOldResult.get().doubleValue())).set("list", result));
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 今日车场流量分析分页查询折线
|
|
|
+ *
|
|
|
+ * @param params
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseBean getTodayFlowAnalysisByLine(FlowAnalysisReq params) {
|
|
|
+ String parkCode = params.getParkCode();
|
|
|
+ Integer type = params.getType();
|
|
|
+ Integer timeIndex = params.getTimeIndex();
|
|
|
+ List<Integer> indexs = Arrays.asList(0, 3, 6, 9, 12, 15, 18, 21, 23);
|
|
|
+ if (!indexs.contains(timeIndex)) {
|
|
|
+ return ResponseBuilder.fail("暂不支持该时间段查询");
|
|
|
+ }
|
|
|
+ if (type != 1 && type != 2 && type != 3) {
|
|
|
+ return ResponseBuilder.fail("类型只能为入场、出场、异常");
|
|
|
+ }
|
|
|
+ List<String> parkCodeList = Arrays.asList(parkCode);
|
|
|
+ if (StringUtils.isBlank(parkCode)) {
|
|
|
+ parkCodeList = ParkUtils.getParkCodeList();
|
|
|
+ }
|
|
|
+ List<Map> results = new ArrayList<>();
|
|
|
+ parkCodeList.forEach(code -> {
|
|
|
+ String format = LocalDateTimeUtil.format(LocalDateTime.now(), DatePattern.PURE_DATE_PATTERN);
|
|
|
+ JSONObject obj = mongoTemplate.findById(code + "_" + format, JSONObject.class, ParkType.getTypeByNo(type).getCode());
|
|
|
+ if (obj == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<Map> maps = obj.getJSONArray("data").toJavaList(Map.class);
|
|
|
+ results.addAll((List<Map>) maps.get(timeIndex).get("data"));
|
|
|
+ });
|
|
|
+ List<Map> maps = ParkUtils.sortDateList(results, ParkType.getTypeByNo(type).getSort(), true);
|
|
|
+ Supplier<Stream<Map>> resStream = () -> maps.stream();
|
|
|
+ List<Map> resultsList = resStream.get().skip((params.getPageNum() - 1) * params.getPageSize()).limit(params.getPageSize()).collect(Collectors.toList());
|
|
|
+ return ResponseBuilder.ok(PageBean.<Map>builder().total(resStream.get().count()).row(resultsList).build());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 今日车场流量分析分页查询详情
|
|
|
*
|
|
@@ -369,8 +408,10 @@ public class ParkSystemServiceImpl implements ParkSystemService {
|
|
|
if (StringUtils.isBlank(parkCode)) {
|
|
|
parkCodeList = ParkUtils.getParkCodeList();
|
|
|
}
|
|
|
+ List<String> idsStr = Arrays.asList("1-3h", "3-6h", "6-9h", "9-12h", "12h以上");
|
|
|
List<String> ids = Arrays.asList("1", "3", "6", "9", "12");
|
|
|
Levi<String, Integer> result = Levi.create();
|
|
|
+ List<Levi> results = new ArrayList<>();
|
|
|
ids.forEach(x -> result.set("count" + x, 0));
|
|
|
parkCodeList.forEach(code -> {
|
|
|
String format = LocalDateTimeUtil.format(LocalDateTime.now(), DatePattern.PURE_DATE_PATTERN);
|
|
@@ -380,7 +421,10 @@ public class ParkSystemServiceImpl implements ParkSystemService {
|
|
|
}
|
|
|
ids.forEach(x -> result.set("count" + x, result.get("count" + x) + obj.getInteger("count" + x)));
|
|
|
});
|
|
|
- return ResponseBuilder.ok(result);
|
|
|
+ for (int i = 0; i < ids.size(); i++) {
|
|
|
+ results.add(Levi.by("time", idsStr.get(i)).set("value", result.getInt("count" + ids.get(i))));
|
|
|
+ }
|
|
|
+ return ResponseBuilder.ok(results);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -453,6 +497,41 @@ public class ParkSystemServiceImpl implements ParkSystemService {
|
|
|
return ResponseBuilder.ok(result);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 关键指标分页查询详情
|
|
|
+ *
|
|
|
+ * @param params
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseBean keyIndexByPage(KeyIndexPageReq params) {
|
|
|
+ String parkCode = params.getParkCode();
|
|
|
+ List<String> parkCodeList = Arrays.asList(parkCode);
|
|
|
+ if (StringUtils.isBlank(parkCode)) {
|
|
|
+ parkCodeList = ParkUtils.getParkCodeList();
|
|
|
+ }
|
|
|
+ Levi<String, String> parkCodeMap = ParkUtils.initParkCodeList();
|
|
|
+ List<Map> list = new ArrayList<>();
|
|
|
+ JSONObject obj = mongoTemplate.findById("parkSpaceLatest", JSONObject.class, "parkSpace");
|
|
|
+ if (obj != null) {
|
|
|
+ JSONObject data = obj != null ? obj.getJSONObject("data") : new JSONObject();
|
|
|
+ parkCodeList.forEach(code -> {
|
|
|
+ if (data.getJSONObject(code) != null) {
|
|
|
+ JSONObject jsonObject = data.getJSONObject(code);
|
|
|
+ Levi set = Levi.by("parkName", parkCodeMap.get(code)).set("tcwds", jsonObject.getInteger("totalSpace")).set("kxcws", jsonObject.getInteger("remainSpace")).set("yzcws", jsonObject.getInteger("totalSpace") - jsonObject.getInteger("remainSpace"));
|
|
|
+ set.set("cwzzl", EnergyUtils.getPercent(Double.parseDouble(set.getStr("yzcws")), Double.parseDouble(set.getStr("tcwds"))));
|
|
|
+ list.add(set);
|
|
|
+ } else {
|
|
|
+ list.add(Levi.by("parkName", parkCodeMap.get(code)).set("tcwds", 0).set("kxcws", 0).set("yzcws", 0).set("cwzzl", "0%"));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ Supplier<Stream<Map>> resStream = () -> list.stream();
|
|
|
+ List<Map> resultsList = resStream.get().skip((params.getPageNum() - 1) * params.getPageSize()).limit(params.getPageSize()).collect(Collectors.toList());
|
|
|
+ return ResponseBuilder.ok(PageBean.<Map>builder().total(resStream.get().count()).row(resultsList).build());
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 不同收费方式停车统计
|
|
|
*
|
|
@@ -477,7 +556,7 @@ public class ParkSystemServiceImpl implements ParkSystemService {
|
|
|
});
|
|
|
Map<String, List<Map>> payType = result.stream().collect(Collectors.groupingBy(x -> x.get("payType").toString()));
|
|
|
result.clear();
|
|
|
- payType.keySet().forEach(x -> result.add(Levi.by("name", PayTypeCode.getTypeByCode(x)).set("code", x).set("count", payType.get(x).size())));
|
|
|
+ payType.keySet().forEach(x -> result.add(Levi.by("name", StringUtils.isNotBlank(PayTypeCode.getTypeByCode(x)) ? PayTypeCode.getTypeByCode(x) : "未知方式").set("code", x).set("count", payType.get(x).size())));
|
|
|
return ResponseBuilder.ok(result);
|
|
|
}
|
|
|
|
|
@@ -563,4 +642,16 @@ public class ParkSystemServiceImpl implements ParkSystemService {
|
|
|
return ResponseBuilder.ok("删除成功");
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取项目列表
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseBean getProjectList() {
|
|
|
+ Levi<String, String> map = ParkUtils.initParkCodeList();
|
|
|
+ List<Levi> result = map.keySet().stream().map(key -> Levi.by("parkName", map.get(key)).set("parkCode", key)).collect(Collectors.toList());
|
|
|
+ return ResponseBuilder.ok(result);
|
|
|
+ }
|
|
|
+
|
|
|
}
|