From c82f9100d3586218e9e41497c2cea73a2cac44fe Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期一, 20 四月 2026 15:03:32 +0800
Subject: [PATCH] #库存上下限预警导出修复

---
 src/main/java/com/zy/asrs/controller/LocDetlController.java |   93 ++++++++++++++++++----------------------------
 1 files changed, 37 insertions(+), 56 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/LocDetlController.java b/src/main/java/com/zy/asrs/controller/LocDetlController.java
index e43ff55..a4739e8 100644
--- a/src/main/java/com/zy/asrs/controller/LocDetlController.java
+++ b/src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -62,67 +62,47 @@
                           @RequestParam(required = false) String orderByType,
                           @RequestParam(required = false) String condition,
                           @RequestParam Map<String, Object> param) {
-
-//        List<LocDetl> result = new ArrayList<>();
-        List<AbnormalLocDetlParam> result = new ArrayList<>();
-//        excludeTrash(param);
-        param.put("curr", curr);
-        param.put("limit", limit);
-        Page<LocDetl> groupLocDetl = locDetlService.getStockStatis2(toPage(1, 10000, param, LocDetl.class));
-//        List<LocDetl> groupLocDetl = locDetlService.selectGroupPage(param, curr, limit);
-        for (LocDetl locDetl : groupLocDetl.getRecords()) {
-            AbnormalLocDetlParam abnormalLocDetlParam = new AbnormalLocDetlParam();
-            Mat mat = matService.selectOne(new EntityWrapper<Mat>()
-                    .eq("matnr", locDetl.getMatnr()));
-            if (Cools.isEmpty(mat)) {
-                continue;
-            }
-
-
-            if (!Cools.isEmpty(mat.getStoreMax()) || !Cools.isEmpty(mat.getStoreMin())) {
-                abnormalLocDetlParam.setStoreMax(mat.getStoreMax());
-                abnormalLocDetlParam.setStoreMaxDate(mat.getStoreMaxDate());
-                abnormalLocDetlParam.setStoreMin(mat.getStoreMin());
-                abnormalLocDetlParam.setAnfme(locDetl.getAnfme());
-                abnormalLocDetlParam.setMaktx(mat.getMaktx());
-                abnormalLocDetlParam.setMatnr(mat.getMatnr());
-                abnormalLocDetlParam.setSpecs(mat.getSpecs());
-                abnormalLocDetlParam.setBatch(locDetl.getBatch());
-
-//                SimpleDateFormat simple = new SimpleDateFormat("yyyyMMdd");
-//                Date maxDate = simple.parse(locDetl.getBatch());
-//                long time = maxDate.getTime();
-//                Date now = new Date();
-//                long time1 = now.getTime();
-//                abnormalLocDetlParam.setNowTime((int) ((time1 - time) / (1000 * 60 * 60 * 24)));
-
-                if (!Cools.isEmpty(mat.getStoreMax()) && locDetl.getAnfme() > mat.getStoreMax()) {
-                    result.add(abnormalLocDetlParam);
-                } else if (!Cools.isEmpty(mat.getStoreMin()) && locDetl.getAnfme() < mat.getStoreMin()) {
-                    result.add(abnormalLocDetlParam);
-                }
-            }
-        }
+        Map<String, Object> queryParam = new HashMap<>();
+        putIfPresent(queryParam, "matnr", param.get("matnr"));
+        putIfPresent(queryParam, "maktx", param.get("maktx"));
+        putIfPresent(queryParam, "specs", param.get("specs"));
+        putIfPresent(queryParam, "warnStatus", param.get("warnStatus"));
+        queryParam.put("pageNumber", curr);
+        queryParam.put("pageSize", limit);
 
         Page<AbnormalLocDetlParam> locDetlPage = new Page<>();
-        locDetlPage.setRecords(paging(result, curr, limit));
-        locDetlPage.setTotal(result.size());
+        locDetlPage.setRecords(locDetlMapper.groupLocList(queryParam));
+        locDetlPage.setTotal(locDetlMapper.groupLocListCount(queryParam));
         locDetlPage.setCurrent(curr);
         locDetlPage.setSize(limit);
         return R.ok(locDetlPage);
     }
 
-    private List<AbnormalLocDetlParam> paging(List<AbnormalLocDetlParam> result, Integer curr, Integer limit) {
-        List<AbnormalLocDetlParam> pageRecord = new ArrayList<AbnormalLocDetlParam>();
-        int minIndex = (curr - 1) * limit;
-        int maxIndex = (curr * limit) - 1;
-        if (result.size() < maxIndex) {
-            maxIndex = result.size();
+    @RequestMapping(value = "/locDetl/groupLocExport/auth")
+    @ManagerAuth(memo = "搴撲綅姹囨�诲鍑�")
+    public R groupLocExport(@RequestBody JSONObject param) {
+        List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+        Map<String, Object> map = excludeTrash(param.getJSONObject("locDetl"));
+        Map<String, Object> queryParam = new HashMap<>();
+        putIfPresent(queryParam, "matnr", map.get("matnr"));
+        putIfPresent(queryParam, "maktx", map.get("maktx"));
+        putIfPresent(queryParam, "specs", map.get("specs"));
+        putIfPresent(queryParam, "warnStatus", map.get("warnStatus"));
+        int total = Optional.ofNullable(locDetlMapper.groupLocListCount(queryParam)).orElse(0);
+        if (total <= 0) {
+            return R.ok(new ArrayList<>());
         }
-        for (int i = minIndex; i < maxIndex; i++) {
-            pageRecord.add(result.get(i));
+        queryParam.put("pageNumber", 1);
+        queryParam.put("pageSize", total);
+        List<AbnormalLocDetlParam> list = locDetlMapper.groupLocList(queryParam);
+        return R.ok(exportSupport(list, fields));
+    }
+
+    private void putIfPresent(Map<String, Object> target, String key, Object value) {
+        String normalized = normalizeFilterText(value);
+        if (normalized != null) {
+            target.put(key, normalized);
         }
-        return pageRecord;
     }
 
     @RequestMapping(value = "/locDetl/{id}/auth")
@@ -204,15 +184,16 @@
     private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
         for (Map.Entry<String, Object> entry : map.entrySet()){
             String val = String.valueOf(entry.getValue());
+            String key = humpToLine(entry.getKey());
             if (val.contains(RANGE_TIME_LINK)){
                 String[] dates = val.split(RANGE_TIME_LINK);
-                wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
-                wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+                wrapper.ge(key, DateUtils.convert(dates[0]));
+                wrapper.le(key, DateUtils.convert(dates[1]));
             } else {
-                if (entry.getKey().equals("locNo")) {
+                if ("loc_no".equals(key)) {
                     wrapper.eq("loc_no", String.valueOf(entry.getValue()));
                 } else {
-                    wrapper.like(entry.getKey(), String.valueOf(entry.getValue()));
+                    wrapper.like(key, String.valueOf(entry.getValue()));
                 }
             }
         }

--
Gitblit v1.9.1