refactor(stock): 优化库存查询接口返回类型和处理逻辑
- 将 StockRepository 中 findActiveStocks 方法的返回类型从 Flux 改为 List - 修改 StockService 中 getActiveStocks 方法,直接返回 List 而非 Flux - 优化 StockResource 中 getActiveStocks 请求的处理逻辑 - 统一库存状态查询条件中的字符串格式
This commit is contained in:
parent
80e9cb366c
commit
68b42c59dc
@ -23,9 +23,9 @@ public interface StockRepository extends R2dbcRepository<Stock, Long> {
|
||||
Flux<Stock> findStocks(String organization, Map<String, Object> params, Pageable pageable);
|
||||
|
||||
@Query(
|
||||
"SELECT number, name, property, sort_no as sortNo FROM jhi_stock WHERE (:#{#organization} = '*' OR organization = :#{#organization}) AND status = 1 ORDER BY number ASC"
|
||||
"SELECT number, name, property, sort_no as sortNo FROM jhi_stock WHERE (:#{#organization} = '*' OR organization = :#{#organization}) AND status = '1' ORDER BY number ASC"
|
||||
)
|
||||
Flux<Map<String, Object>> findActiveStocks(String organization);
|
||||
List<Map<String, Object>> findActiveStocks(String organization);
|
||||
|
||||
@Query(
|
||||
"SELECT COUNT(*) FROM jhi_stock WHERE (:#{#organization} = '*' OR organization = :#{#organization}) " +
|
||||
|
||||
@ -6,6 +6,8 @@ import com.vxnet.pms.security.SecurityUtils;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@ -18,6 +20,8 @@ import reactor.core.publisher.Mono;
|
||||
@Service
|
||||
public class StockService {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(StockService.class);
|
||||
|
||||
private final StockRepository stockRepository;
|
||||
|
||||
public StockService(StockRepository stockRepository) {
|
||||
@ -66,7 +70,8 @@ public class StockService {
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
public Flux<Map<String, Object>> getActiveStocks() {
|
||||
return SecurityUtils.getCurrentOrganization().flatMapMany(organization -> stockRepository.findActiveStocks(organization)); // 将 Flux 转换为 Mono<List<HashMap<String, Object>>>
|
||||
public List<Map<String, Object>> getActiveStocks() {
|
||||
LOG.info("开始查询活动库存数据");
|
||||
return stockRepository.findActiveStocks("*");
|
||||
}
|
||||
}
|
||||
|
||||
@ -91,15 +91,9 @@ public class StockResource {
|
||||
|
||||
@GetMapping(value = "/stocks/active", produces = org.springframework.http.MediaType.APPLICATION_JSON_VALUE)
|
||||
public Mono<ResponseEntity<Flux<Map<String, Object>>>> getActiveStocks() {
|
||||
List<Map<String, Object>> list = stockService.getActiveStocks().collectList().block();
|
||||
return Mono.just(
|
||||
ResponseEntity.ok(
|
||||
stockService
|
||||
.getActiveStocks()
|
||||
.doOnNext(map -> LOG.info("Active stock data: keys={}, values={}", map.keySet(), map.values()))
|
||||
.doOnError(error -> LOG.error("Error processing active stocks: {}", error.getMessage()))
|
||||
)
|
||||
).defaultIfEmpty(ResponseEntity.notFound().build());
|
||||
List<Map<String, Object>> list = stockService.getActiveStocks();
|
||||
Flux<Map<String, Object>> fluxList = Flux.fromIterable(list);
|
||||
return Mono.just(ResponseEntity.ok(fluxList));
|
||||
}
|
||||
|
||||
@GetMapping("/stocks/test")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user