From ac4341ea6b66ae02427d39d35f41d42d78b2eb2e Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 14 二月 2025 10:08:32 +0800
Subject: [PATCH] #

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaveController.java |   68 +++++++++++++++++++++++----------
 1 files changed, 47 insertions(+), 21 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaveController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaveController.java
index c7944ed..749f66f 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaveController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaveController.java
@@ -1,12 +1,11 @@
 package com.zy.asrs.wms.asrs.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zy.asrs.framework.common.Cools;
 import com.zy.asrs.framework.common.R;
-import com.zy.asrs.wms.asrs.entity.TaskDetl;
 import com.zy.asrs.wms.asrs.entity.WaveDetl;
-import com.zy.asrs.wms.asrs.service.TaskDetlService;
 import com.zy.asrs.wms.asrs.service.WaveDetlService;
 import com.zy.asrs.wms.common.annotation.OperationLog;
 import com.zy.asrs.wms.common.domain.BaseParam;
@@ -21,10 +20,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 @RestController
 @RequestMapping("/api")
@@ -34,30 +30,60 @@
     private WaveService waveService;
     @Autowired
     private WaveDetlService waveDetlService;
-    @Autowired
-    private TaskDetlService taskDetlService;
 
     @PreAuthorize("hasAuthority('asrs:wave:list')")
     @PostMapping("/wave/page")
     public R page(@RequestBody Map<String, Object> map) {
         BaseParam baseParam = buildParam(map, BaseParam.class);
         PageParam<Wave, BaseParam> pageParam = new PageParam<>(baseParam, Wave.class);
-        PageParam<Wave, BaseParam> page = waveService.page(pageParam, pageParam.buildWrapper(true));
 
-        List<Wave> records = page.getRecords();
-        for (Wave record : records) {
-            ArrayList<Long> orderDetlIds = new ArrayList<>();
-            for (WaveDetl waveDetl : record.getWaveDetlList()) {
-                orderDetlIds.add(waveDetl.getOrderId());
-            }
+        QueryWrapper<Wave> wrapper = new QueryWrapper<>();
 
-            List<TaskDetl> taskDetls = taskDetlService.list(new LambdaQueryWrapper<TaskDetl>().in(TaskDetl::getOrderId, orderDetlIds));
-            if (taskDetls.isEmpty()) {
-                record.setGenerateTask(false);
-            }else {
-                record.setGenerateTask(true);
-            }
+        String condition = map.getOrDefault("condition", "").toString();
+        if (!Cools.isEmpty(condition)) {
+            wrapper.and(wrapper1 -> {
+                wrapper1.or().like("wave_no", condition);
+                wrapper1.or().like("memo", condition);
+            });
         }
+
+        Object paramObj = map.get("_param");
+        if(paramObj != null) {
+            Map param = (Map) paramObj;
+            Object waveNoObj = param.get("waveNo");
+            Object matnrObj = param.get("matnr");
+            Object batchObj = param.get("batch");
+
+            LambdaQueryWrapper<WaveDetl> waveDetlWrapper = new LambdaQueryWrapper<>();
+
+            if(!Cools.isEmpty(waveNoObj)) {
+                waveDetlWrapper.like(WaveDetl::getWaveNo, waveNoObj);
+            }
+
+            if(!Cools.isEmpty(matnrObj)) {
+                waveDetlWrapper.like(WaveDetl::getMatnr, matnrObj);
+            }
+
+            if(!Cools.isEmpty(batchObj)) {
+                waveDetlWrapper.like(WaveDetl::getBatch, batchObj);
+            }
+
+            List<WaveDetl> waveDetls = waveDetlService.list(waveDetlWrapper);
+            ArrayList<Long> waveIds = new ArrayList<>();
+            for (WaveDetl waveDetl : waveDetls) {
+                if(!waveIds.contains(waveDetl.getWaveId())) {
+                    waveIds.add(waveDetl.getWaveId());
+                }
+            }
+
+            if (waveIds.isEmpty()) {
+                waveIds.add(-1L);
+            }
+            wrapper.in("id", waveIds);
+
+        }
+
+        PageParam<Wave, BaseParam> page = waveService.page(pageParam, wrapper);
         return R.ok().add(page);
     }
 

--
Gitblit v1.9.1