Browse Source

包租协议分页列表报错解决

xlq 2 weeks ago
parent
commit
bcd0a0b0e3
1 changed files with 23 additions and 19 deletions
  1. 23 19
      src/main/java/com/qmrb/system/service/impl/ContractServiceImpl.java

+ 23 - 19
src/main/java/com/qmrb/system/service/impl/ContractServiceImpl.java

@@ -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;
     }