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 | 118 +++++++++++++++++++++++++++++++----------------------------
1 files changed, 62 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 8ade3a7..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")
@@ -189,6 +169,7 @@
// }
// }
excludeTrash(param);
+ applyBeBatchFilter(param, wrapper);
convert(param, wrapper);
allLike(LocDetl.class, param.keySet(), wrapper, condition);
if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
@@ -203,18 +184,42 @@
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()));
}
}
}
+ }
+
+ private <T> void applyBeBatchFilter(Map<String, Object> map, EntityWrapper<T> wrapper) {
+ Object beBatchObj = map.remove("beBatch");
+ if (beBatchObj == null) {
+ beBatchObj = map.remove("be_batch");
+ }
+ if (beBatchObj == null) {
+ return;
+ }
+ String beBatch = String.valueOf(beBatchObj).trim();
+ if (Cools.isEmpty(beBatch)) {
+ return;
+ }
+ if ("1".equals(beBatch)) {
+ wrapper.eq("be_batch", 1);
+ return;
+ }
+ if ("0".equals(beBatch)) {
+ wrapper.andNew().isNull("be_batch").or().eq("be_batch", 0);
+ return;
+ }
+ wrapper.eq("be_batch", beBatch);
}
@RequestMapping(value = "/locDetl/add/auth")
@@ -290,6 +295,7 @@
map.remove("row");
}
}
+ applyBeBatchFilter(map, wrapper);
convert(map, wrapper);
if (!row.equals("")) {
wrapper.and()
--
Gitblit v1.9.1