|
@@ -34,6 +34,7 @@ import jakarta.validation.Valid;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -231,29 +232,32 @@ public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> i
|
|
|
|
|
|
// 将 contractIds 拼接成字符串
|
|
|
String contractIdsStr = String.join(",", contractIds.stream().map(String::valueOf).toArray(String[]::new));
|
|
|
-
|
|
|
- // 执行 SQL 查询
|
|
|
- List<Map<String, Object>> statistics = baseMapper.pageWithCharter(contractIdsStr);
|
|
|
- // 将统计结果映射到 ContractVO 中
|
|
|
+ List<Map<String, Object>> statistics = new ArrayList<>();
|
|
|
Map<Long, Map<String, Object>> statisticsMap = new HashMap<>();
|
|
|
- for (Map<String, Object> stat : statistics) {
|
|
|
- Long contractId = (Long) stat.get("contract_id");
|
|
|
- statisticsMap.put(contractId, stat);
|
|
|
- }
|
|
|
-
|
|
|
- for (ContractVO record : pageResult.getRecords()) {
|
|
|
- Long contractId = record.getId();
|
|
|
- String largeTimeNums = "";
|
|
|
- String smallTimeNums = "";
|
|
|
- Map<String, Object> stat = statisticsMap.get(contractId);
|
|
|
- if (stat != null) {
|
|
|
- largeTimeNums = record.getBigParkingLotNum() + "/" + stat.get("largeRealTimeNum") + "/" + stat.get("largeInParkingCount");
|
|
|
- smallTimeNums = record.getSmallParkingLotNum() + "/" + stat.get("smallRealTimeNum") + "/" + stat.get("smallInParkingCount");
|
|
|
+ if (StringUtils.isNotBlank(contractIdsStr)) {
|
|
|
+ // 执行 SQL 查询
|
|
|
+ statistics = baseMapper.pageWithCharter(contractIdsStr);
|
|
|
+ // 将统计结果映射到 ContractVO 中
|
|
|
+ for (Map<String, Object> stat : statistics) {
|
|
|
+ Long contractId = (Long) stat.get("contract_id");
|
|
|
+ statisticsMap.put(contractId, stat);
|
|
|
+ }
|
|
|
+ for (ContractVO record : pageResult.getRecords()) {
|
|
|
+ Long contractId = record.getId();
|
|
|
+ String largeTimeNums = "";
|
|
|
+ String smallTimeNums = "";
|
|
|
+ Map<String, Object> stat = statisticsMap.get(contractId);
|
|
|
+ if (stat != null) {
|
|
|
+ largeTimeNums = record.getBigParkingLotNum() + "/" + stat.get("largeRealTimeNum") + "/" + stat.get("largeInParkingCount");
|
|
|
+ smallTimeNums = record.getSmallParkingLotNum() + "/" + stat.get("smallRealTimeNum") + "/" + stat.get("smallInParkingCount");
|
|
|
+ }
|
|
|
+ record.setLargeTimeNums(largeTimeNums);
|
|
|
+ record.setSmallTimeNums(smallTimeNums);
|
|
|
}
|
|
|
- record.setLargeTimeNums(largeTimeNums);
|
|
|
- record.setSmallTimeNums(smallTimeNums);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
return pageResult;
|
|
|
}
|
|
|
|