From 20cec70cdcca8c2419a17e0304d12d5360af6065 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期三, 25 九月 2024 14:48:27 +0800
Subject: [PATCH] #

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/WaveController.java |   50 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 49 insertions(+), 1 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 06b68e4..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,6 +1,7 @@
 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;
@@ -35,7 +36,54 @@
     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));
+
+        QueryWrapper<Wave> wrapper = new QueryWrapper<>();
+
+        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