From bb7dd1f513149ecd2887895c807861fdd06a43f6 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期三, 11 二月 2026 15:29:27 +0800
Subject: [PATCH] 展示库存明细
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java | 68 ++++++++++++++++++++++++++++++++++
1 files changed, 68 insertions(+), 0 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
index 2e999d3..a42985b 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
@@ -8,12 +8,16 @@
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.api.utils.LocUtils;
import com.vincent.rsf.server.common.constant.Constants;
+import com.vincent.rsf.server.common.domain.BaseParam;
+import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.manager.controller.dto.ExistDto;
import com.vincent.rsf.server.manager.controller.dto.OrderOutItemDto;
import com.vincent.rsf.server.manager.controller.params.*;
import com.vincent.rsf.server.manager.enums.*;
+import com.vincent.rsf.server.manager.entity.Matnr;
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.mapper.AsnOrderMapper;
+import com.vincent.rsf.server.manager.mapper.LocItemMapper;
import com.vincent.rsf.server.manager.service.*;
import com.vincent.rsf.server.manager.utils.LocManageUtil;
import com.vincent.rsf.server.manager.utils.OptimalAlgorithmUtil;
@@ -83,7 +87,71 @@
private WaveOrderRelaServiceImpl waveOrderRelaService;
@Autowired
private TaskItemService taskItemService;
+ @Autowired
+ private LocItemMapper locItemMapper;
+ @Override
+ public PageParam<Matnr, BaseParam> pageMatnrForOutStock(PageParam<Matnr, BaseParam> pageParam, Map<String, Object> params) {
+ PageParam<Matnr, BaseParam> page = matnrService.getMatnrPage(pageParam, params);
+ List<Matnr> records = page.getRecords();
+ if (records == null || records.isEmpty()) {
+ return page;
+ }
+ List<Long> matnrIds = records.stream().map(Matnr::getId).collect(Collectors.toList());
+ String locUseStatus = params.get("locUseStatus") != null ? params.get("locUseStatus").toString() : null;
+ List<Map<String, Object>> stockList = locItemMapper.listStockByMatnrIds(matnrIds, locUseStatus);
+ Map<Long, Double> stockQtyMap = new HashMap<>();
+ Map<Long, String> locStatusDescMap = new HashMap<>();
+ Map<Long, String> locCodesMap = new HashMap<>();
+ for (Map<String, Object> row : stockList) {
+ Long matnrId = getLong(row, "matnrId", "matnrid");
+ if (matnrId == null) continue;
+ Object qty = getAny(row, "stockQty", "stockqty");
+ double v = qty instanceof Number ? ((Number) qty).doubleValue() : 0d;
+ stockQtyMap.put(matnrId, v);
+ String locCodes = getStr(row, "locCodes", "loccodes");
+ if (locCodes != null && !locCodes.isEmpty()) {
+ locCodesMap.put(matnrId, locCodes);
+ }
+ String locStatuses = getStr(row, "locStatuses", "locstatuses");
+ if (locStatuses != null && !locStatuses.isEmpty()) {
+ String desc = Arrays.stream(locStatuses.split(","))
+ .map(String::trim)
+ .map(LocStsType::getDescByType)
+ .collect(Collectors.joining(","));
+ locStatusDescMap.put(matnrId, desc);
+ } else if (locUseStatus != null && !locUseStatus.isEmpty()) {
+ locStatusDescMap.put(matnrId, LocStsType.getDescByType(locUseStatus));
+ }
+ }
+ for (Matnr record : records) {
+ record.setStockQty(stockQtyMap.getOrDefault(record.getId(), 0d));
+ record.setLocUseStatus$(locStatusDescMap.get(record.getId()));
+ record.setLocCodes$(locCodesMap.get(record.getId()));
+ }
+ return page;
+ }
+
+ private static Long getLong(Map<String, Object> map, String... keys) {
+ Object v = getAny(map, keys);
+ if (v == null) return null;
+ if (v instanceof Long) return (Long) v;
+ if (v instanceof Number) return ((Number) v).longValue();
+ try { return Long.parseLong(v.toString()); } catch (NumberFormatException e) { return null; }
+ }
+
+ private static String getStr(Map<String, Object> map, String... keys) {
+ Object v = getAny(map, keys);
+ return v != null ? v.toString() : null;
+ }
+
+ private static Object getAny(Map<String, Object> map, String... keys) {
+ for (String key : keys) {
+ Object v = map.get(key);
+ if (v != null) return v;
+ }
+ return null;
+ }
/**
* @param
--
Gitblit v1.9.1