From 7ec958c241902d29dbffe9f81376b71a8458148e Mon Sep 17 00:00:00 2001 From: zhangc <zc@123> Date: 星期一, 13 一月 2025 16:07:21 +0800 Subject: [PATCH] 优化订单同步逻辑及库位查找 --- src/main/java/com/zy/asrs/controller/OrderDetlController.java | 92 ++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 89 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OrderDetlController.java b/src/main/java/com/zy/asrs/controller/OrderDetlController.java index 1906679..83caf0b 100644 --- a/src/main/java/com/zy/asrs/controller/OrderDetlController.java +++ b/src/main/java/com/zy/asrs/controller/OrderDetlController.java @@ -15,7 +15,9 @@ import com.zy.asrs.entity.OrderDetl; import com.zy.asrs.service.*; import com.zy.common.web.BaseController; +import lombok.Synchronized; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StopWatch; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; @@ -98,13 +100,66 @@ return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper)); } + @RequestMapping(value = "/orderDetl/pakout/list/authV193") + @ManagerAuth + public R pakoutList193(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit, + @RequestParam(required = false)String orderByField, + @RequestParam(required = false)String orderByType, + @RequestParam(required = false)Long docType, + @RequestParam Map<String, Object> param){ + EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>(); + param.remove("docType"); + excludeTrash(param); + convertLike(param, wrapper); + if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else { + wrapper.orderBy("create_time", false); + } + List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1)); + List<Long> docIds = new ArrayList<>(); + + List<Long> unDocIds = new ArrayList<>(); + unDocIds.add(18L); + unDocIds.add(31L); + unDocIds.add(33L); + unDocIds.add(34L); + unDocIds.add(35L); + unDocIds.add(37L); + for (DocType pakin : pakins) { + if (!unDocIds.contains(pakin.getDocId())) { + docIds.add(pakin.getDocId()); + } + } + + if (docIds.size() > 0) { + if (docType > 0) { + wrapper.in("source",docType); + } else { + wrapper.in("source",docIds); + } + + } else { + wrapper.in("source",0); + } + Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper); + for (OrderDetl record : page.getRecords()) { + Double sumAnfme = agvLocDetlService.getSumAnfme(record.getMatnr(), record.getThreeCode()); + record.setStock(sumAnfme == null ? 0 : sumAnfme); + } + + return R.ok(page); + } + @RequestMapping(value = "/orderDetl/pakout/list/authV3") + @Synchronized @ManagerAuth public R pakoutList3(@RequestParam(defaultValue = "1")Integer curr, @RequestParam(defaultValue = "10")Integer limit, @RequestParam(required = false)String orderByField, @RequestParam(required = false)String orderByType, @RequestParam Map<String, Object> param){ + StopWatch stopWatch = new StopWatch(); + stopWatch.start(); EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>(); excludeTrash(param); convertLike(param, wrapper); @@ -114,18 +169,18 @@ List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1)); List<Long> docIds = new ArrayList<>(); for (DocType pakin : pakins) { - if (pakin.getDocId() != 33 && pakin.getDocId() != 34 && pakin.getDocId() != 35) { + if (pakin.getDocId() != 17 && pakin.getDocId() != 33 && pakin.getDocId() != 34 && pakin.getDocId() != 35) { docIds.add(pakin.getDocId()); } } - wrapper.in("source",docIds); Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper); for (OrderDetl record : page.getRecords()) { Double sumAnfme = agvLocDetlService.getSumAnfme(record.getMatnr(), record.getThreeCode()); record.setStock(sumAnfme == null ? 0 : sumAnfme); } - + stopWatch.stop(); + System.out.println(stopWatch.getTotalTimeSeconds()); return R.ok(page); } @@ -194,6 +249,37 @@ return R.ok(page); } + @RequestMapping(value = "/orderDetl/pakout/list/authV6") + @ManagerAuth + public R pakoutList6(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit, + @RequestParam(required = false)String orderByField, + @RequestParam(required = false)String orderByType, + @RequestParam Map<String, Object> param){ + EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>(); + excludeTrash(param); + convertLike(param, wrapper); + if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else { + wrapper.orderBy("create_time", false); + } + List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1)); + List<Long> docIds = new ArrayList<>(); + for (DocType pakin : pakins) { + if (pakin.getDocId() == 37) { + docIds.add(pakin.getDocId()); + } + } + + wrapper.in("source",docIds); + Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper); + for (OrderDetl record : page.getRecords()) { + Double sumAnfme = agvLocDetlService.getSumAnfme(record.getMatnr(), record.getThreeCode()); + record.setStock(sumAnfme == null ? 0 : sumAnfme); + } + + return R.ok(page); + } + 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()); -- Gitblit v1.9.1