Browse Source

收费策略新增模糊查询

donglang 14 hours ago
parent
commit
fed0322e24

+ 11 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/repository/KwtParkingChangeStrategyUnitRepository.java

@@ -49,4 +49,15 @@ public class KwtParkingChangeStrategyUnitRepository extends ServiceImpl<KwtParki
                         .orderByDesc(KwtParkingChargeStrategyUnit::getId));
     }
 
+    public List<KwtParkingChargeStrategyUnit> queryByEntIds(Set<Long> entId) {
+        return list(
+                Wrappers.<KwtParkingChargeStrategyUnit>lambdaQuery()
+                        .in(KwtParkingChargeStrategyUnit::getEntId, entId)
+                        .orderByDesc(KwtParkingChargeStrategyUnit::getId));
+    }
+
+
+
+
+
 }

+ 34 - 5
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ParkingChangeStrategyService.java

@@ -29,10 +29,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.util.Collections;
-import java.util.List;
-import java.util.Objects;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -85,11 +82,43 @@ public class ParkingChangeStrategyService {
      * 构建查询条件并执行分页查询
      */
     private LambdaQueryWrapper<KwtParkingChargeStrategy> buildAndExecuteQuery(ParkingChangeStrategyQueryParam param) {
-        return  Wrappers.<KwtParkingChargeStrategy>lambdaQuery()
+        LambdaQueryWrapper<KwtParkingChargeStrategy> wrapper = Wrappers.<KwtParkingChargeStrategy>lambdaQuery()
                 .eq(param.getType() != null, KwtParkingChargeStrategy::getType, param.getType())
                 .like(StringUtils.isNotBlank(param.getStrategyName()), KwtParkingChargeStrategy::getStrategyName, param.getStrategyName())
                 .eq(KwtParkingChargeStrategy::getDelFlag, 0)
                 .orderByDesc(KwtParkingChargeStrategy::getCreateTime);
+
+        handleSearchKeyword(param, wrapper);
+
+        return wrapper;
+    }
+
+    /**
+     * 关键词模糊查询
+     */
+    private void handleSearchKeyword(ParkingChangeStrategyQueryParam param, LambdaQueryWrapper<KwtParkingChargeStrategy> wrapper) {
+        if (StringUtils.isBlank(param.getEntName())) {
+            return;
+        }
+        Set<Long> strategyIds = addMatchedIds(param.getEntName());
+        if (CollectionUtils.isNotEmpty(strategyIds)) {
+            wrapper.in(KwtParkingChargeStrategy::getId, strategyIds);
+        }
+    }
+
+
+    /**
+     * 从企业名称模糊查询收费策略
+     * @param entName
+     */
+    private Set<Long> addMatchedIds(String entName) {
+        List<EntCacheResDto> entCacheResDtoList = remoteSystemService.queryEntCacheByName(entName);
+        if (CollectionUtils.isEmpty(entCacheResDtoList)) {
+            return new HashSet<>();
+        }
+        Set<Long> entIds = entCacheResDtoList.stream().map(EntCacheResDto::getId).collect(Collectors.toSet());
+        List<KwtParkingChargeStrategyUnit> strategyUnits = parkingChangeStrategyUnitRepository.queryByEntIds(entIds);
+        return strategyUnits.stream().map(KwtParkingChargeStrategyUnit::getStrategyId).collect(Collectors.toSet());
     }
 
     /**