|
@@ -654,6 +654,55 @@ public class ParkSystemServiceImpl implements ParkSystemService {
|
|
|
return ResponseBuilder.ok(PageBean.<Map>builder().total(resStream.get().count()).row(resultsList).build());
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 根据集合名称修复所有指定日期后的数字
|
|
|
+ *
|
|
|
+ * @param collection
|
|
|
+ * @param date
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseBean fixDate(String collection, String date) {
|
|
|
+ List<String> dateIds = ParkUtils.getDateIds(date);
|
|
|
+ List<String> list = new ArrayList<>();
|
|
|
+ dateIds.forEach(dateId -> {
|
|
|
+ List<String> parkCodeList = ParkUtils.getParkCodeList();
|
|
|
+ parkCodeList.forEach(parkCode -> {
|
|
|
+ // 修复业务数据
|
|
|
+ Map dayMap = mongoTemplate.findById(parkCode + "_" + dateId, Map.class, collection);
|
|
|
+ if (MapUtil.isNotEmpty(dayMap)) {
|
|
|
+ list.add(parkCode + "_" + dateId);
|
|
|
+ Query query = new Query();
|
|
|
+ query.addCriteria(Criteria.where("_id").is(parkCode + "_" + dateId));
|
|
|
+ Update update = new Update();
|
|
|
+ List<Map> hourList = (List<Map>) dayMap.get("data");
|
|
|
+ AtomicReference<Integer> countNum = new AtomicReference<>(0);
|
|
|
+ hourList.forEach(hourMap -> {
|
|
|
+ List<Map> dataList = (List<Map>) hourMap.get("data");
|
|
|
+ if (CollUtil.isNotEmpty(dataList)) {
|
|
|
+ countNum.set(countNum.get() + dataList.size());
|
|
|
+ }
|
|
|
+ hourMap.put("count", dataList.size());
|
|
|
+ });
|
|
|
+ update.set("count", countNum.get());
|
|
|
+ update.set("data", dayMap.get("data"));
|
|
|
+ mongoTemplate.upsert(query, update, collection);
|
|
|
+ }
|
|
|
+ // 修复异常数字
|
|
|
+ Map dayMapException = mongoTemplate.findById(parkCode + "_" + dateId, Map.class, "parkException");
|
|
|
+ if (MapUtil.isNotEmpty(dayMapException)) {
|
|
|
+ Query query = new Query();
|
|
|
+ query.addCriteria(Criteria.where("_id").is(parkCode + "_" + dateId));
|
|
|
+ Update update = new Update();
|
|
|
+ Map<String, List> exceptionMap = (Map<String, List>) dayMapException.get("data");
|
|
|
+ exceptionMap.keySet().forEach(key -> update.set(key + "Count", exceptionMap.get(key).size()));
|
|
|
+ mongoTemplate.upsert(query, update, "parkException");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ return ResponseBuilder.ok("修复车场完成", list);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 不同收费方式停车统计
|
|
|
*
|