From b003a49794f49a329e2702918ecfc8d14b371d0d Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期三, 04 三月 2026 14:51:25 +0800
Subject: [PATCH] 云仓WMS接口流程

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaitPakinLogController.java |   51 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 46 insertions(+), 5 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaitPakinLogController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaitPakinLogController.java
index 29d85bd..887d203 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaitPakinLogController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaitPakinLogController.java
@@ -9,7 +9,9 @@
 import com.vincent.rsf.server.common.domain.BaseParam;
 import com.vincent.rsf.server.common.domain.KeyValVo;
 import com.vincent.rsf.server.common.domain.PageParam;
+import com.vincent.rsf.server.manager.entity.WaitPakinItemLog;
 import com.vincent.rsf.server.manager.entity.WaitPakinLog;
+import com.vincent.rsf.server.manager.service.WaitPakinItemLogService;
 import com.vincent.rsf.server.manager.service.WaitPakinLogService;
 import com.vincent.rsf.server.system.controller.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,37 +20,50 @@
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @RestController
 public class WaitPakinLogController extends BaseController {
 
     @Autowired
     private WaitPakinLogService waitPakinLogService;
+    @Autowired
+    private WaitPakinItemLogService waitPakinItemLogService;
 
     @PreAuthorize("hasAuthority('manager:waitPakinLog:list')")
     @PostMapping("/waitPakinLog/page")
     public R page(@RequestBody Map<String, Object> map) {
         BaseParam baseParam = buildParam(map, BaseParam.class);
         PageParam<WaitPakinLog, BaseParam> pageParam = new PageParam<>(baseParam, WaitPakinLog.class);
-        return R.ok().add(waitPakinLogService.page(pageParam, pageParam.buildWrapper(true)));
+        Page<WaitPakinLog> page = waitPakinLogService.page(pageParam, pageParam.buildWrapper(true));
+        fillAsnCodesForLog(page.getRecords());
+        return R.ok().add(page);
     }
 
     @PreAuthorize("hasAuthority('manager:waitPakinLog:list')")
     @PostMapping("/waitPakinLog/list")
     public R list(@RequestBody Map<String, Object> map) {
-        return R.ok().add(waitPakinLogService.list());
+        List<WaitPakinLog> list = waitPakinLogService.list();
+        fillAsnCodesForLog(list);
+        return R.ok().add(list);
     }
 
     @PreAuthorize("hasAuthority('manager:waitPakinLog:list')")
     @PostMapping({"/waitPakinLog/many/{ids}", "/waitPakinLogs/many/{ids}"})
     public R many(@PathVariable Long[] ids) {
-        return R.ok().add(waitPakinLogService.listByIds(Arrays.asList(ids)));
+        List<WaitPakinLog> list = waitPakinLogService.listByIds(Arrays.asList(ids));
+        fillAsnCodesForLog(list);
+        return R.ok().add(list);
     }
 
     @PreAuthorize("hasAuthority('manager:waitPakinLog:list')")
     @GetMapping("/waitPakinLog/{id}")
     public R get(@PathVariable("id") Long id) {
-        return R.ok().add(waitPakinLogService.getById(id));
+        WaitPakinLog one = waitPakinLogService.getById(id);
+        if (one != null) {
+            fillAsnCodesForLog(Collections.singletonList(one));
+        }
+        return R.ok().add(one);
     }
 
     @PreAuthorize("hasAuthority('manager:waitPakinLog:save')")
@@ -104,7 +119,33 @@
     @PreAuthorize("hasAuthority('manager:waitPakinLog:list')")
     @PostMapping("/waitPakinLog/export")
     public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
-        ExcelUtil.build(ExcelUtil.create(waitPakinLogService.list(), WaitPakinLog.class), response);
+        List<WaitPakinLog> list = waitPakinLogService.list();
+        fillAsnCodesForLog(list);
+        ExcelUtil.build(ExcelUtil.create(list, WaitPakinLog.class), response);
+    }
+
+    /**
+     * 鏍规嵁缁勬墭鍘嗗彶鏄庣粏濉厖涓绘。鐨勫叧鑱斿叆搴撻�氱煡鍗曞彿锛坅snCodes锛夛紝涓庣粍鎵橀�氱煡妗d繚鎸佷竴鑷�
+     */
+    private void fillAsnCodesForLog(List<WaitPakinLog> list) {
+        if (list == null || list.isEmpty()) {
+            return;
+        }
+        List<Long> logIds = list.stream().map(WaitPakinLog::getId).collect(Collectors.toList());
+        List<WaitPakinItemLog> items = waitPakinItemLogService.list(
+                new LambdaQueryWrapper<WaitPakinItemLog>()
+                        .in(WaitPakinItemLog::getLogId, logIds)
+                        .select(WaitPakinItemLog::getLogId, WaitPakinItemLog::getAsnCode));
+        Map<Long, String> asnCodesByLogId = logIds.stream().collect(Collectors.toMap(
+                logId -> logId,
+                logId -> items.stream()
+                        .filter(i -> logId.equals(i.getLogId()) && i.getAsnCode() != null && !i.getAsnCode().trim().isEmpty())
+                        .map(WaitPakinItemLog::getAsnCode)
+                        .distinct()
+                        .collect(Collectors.joining(","))));
+        for (WaitPakinLog p : list) {
+            p.setAsnCodes(asnCodesByLogId.get(p.getId()));
+        }
     }
 
 }

--
Gitblit v1.9.1