From efd08b1b4e4cbf8007096bee5d7912979e3e427a Mon Sep 17 00:00:00 2001 From: zhangc <zc@123> Date: 星期一, 10 二月 2025 12:44:12 +0800 Subject: [PATCH] 兼容四期 --- src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java | 15 ++++--- src/main/java/com/zy/asrs/controller/AgvLocDetlController.java | 35 +++++++++-------- src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 3 + src/main/java/com/zy/asrs/controller/OutController.java | 46 +++++++++++++++++++++++ 4 files changed, 76 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java b/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java index d2adaec..c1a7f88 100644 --- a/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java +++ b/src/main/java/com/zy/asrs/controller/AgvLocDetlController.java @@ -137,19 +137,22 @@ } } for (AgvLocDetl record : agvLocDetlPage.getRecords()) { - OrderDetl orderDetl; - if (!Cools.isEmpty(orderNo)) { - orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>() - .eq("order_no", orderNo) - .eq("three_code", record.getThreeCode()) - .eq("matnr", record.getMatnr()) - .in("source", docIds)); - } else { - orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>() - .eq("three_code", record.getThreeCode()) - .eq("matnr", record.getMatnr()) - .in("source", docIds)); - } + //OrderDetl orderDetl; +// if (!Cools.isEmpty(orderNo)) { +// orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>() +// .eq("order_no", orderNo) +// .eq("three_code", record.getThreeCode()) +// .eq("matnr", record.getMatnr()) +// .in("source", docIds)); +// } else { + OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>() + .eq("three_code", record.getThreeCode()) + .eq("matnr", record.getMatnr()) + .in("source", docIds) + .orderBy("qty", false) + .orderBy("anfme", false) + .orderBy("create_time", true)); + // } // if (orderDetl.getAnfme() - orderDetl.getQty() > 0) { // record.setStock(orderDetl.getAnfme() - orderDetl.getQty()); // } else { @@ -157,9 +160,9 @@ // } if (Cools.isEmpty(orderDetl)) { record.setStock(0D); - if (!Cools.isEmpty(orderNo)) { - record.setOrderNo(orderNo); - } +// if (!Cools.isEmpty(orderNo)) { +// record.setOrderNo(orderNo); +// } } else { record.setStock(orderDetl.getAnfme() - orderDetl.getQty()); record.setOrderNo(orderDetl.getOrderNo()); diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java index 70a25c7..9e8d0b8 100644 --- a/src/main/java/com/zy/asrs/controller/OutController.java +++ b/src/main/java/com/zy/asrs/controller/OutController.java @@ -6,6 +6,7 @@ import com.core.common.Cools; import com.core.common.R; import com.core.exception.CoolException; +import com.zy.asrs.constant.AsrsConstants; import com.zy.asrs.entity.*; import com.zy.asrs.service.*; import com.zy.common.model.LocDto; @@ -159,6 +160,51 @@ } + @PostMapping("/bcp/out/pakout/preview/auth/v2") + @ManagerAuth + public R bcpPakoutPreviewV2(@RequestBody List<Long> ids) { + + List<OrderDetl> orderDetlList = orderDetlService.selectBatchIds(ids); + //杩斿洖缁欏墠绔殑搴撲綅浠ュ強绔欑偣淇℃伅 + List<LocDto> locDtoList = new ArrayList<>(); + + for (OrderDetl orderDetl : orderDetlList) { + double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D); + Order order = orderService.selectByNo(orderDetl.getOrderNo()); + DocType docType = docTypeService.selectById(order.getDocType()); + if("浜哄伐琛ヨ揣鍗�".equals(docType.getDocName())){ + if (issued <= 0.0D) { continue; } + issued = locDetlService.queryStockAndSetLocDto1(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime()); + if (issued > 0) { + LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued,orderDetl.getProcessSts()); + locDto.setLack(Boolean.TRUE); + locDtoList.add(locDto); + } + }else { + if (issued <= 0.0D) { continue; } + + //浠庡钩搴撳鎵� + //issued = manLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime()); + + //鍏堟壘AGV鐨勫簱瀛橈紝濡傛灉杩斿洖鐨刬ssued澶т簬0锛屽垯鍘诲洓椤瑰簱鎵� + issued = agvLocDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime(), AsrsConstants.ERCHANG); + + //浠庡洓椤瑰簱鐨勫簱瀛橀噷闈㈡壘锛� + //issued = locDetlService.queryStockAndSetLocDto(orderDetl.getMatnr(),orderDetl.getBatch(),orderDetl.getOrderNo(),locDtoList,issued,orderDetl.getThreeCode(),orderDetl.getDeadTime()); + + if (issued > 0) { + LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued,orderDetl.getProcessSts()); + locDto.setLack(Boolean.TRUE); + locDtoList.add(locDto); + } + } + + + } + return R.ok().add(locDtoList); + + } + @PostMapping("/out/pakout/auth") @ManagerAuth(memo = "璁㈠崟鍑哄簱") @Transactional diff --git a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java index d702e36..0f417f3 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java @@ -7,6 +7,7 @@ import com.core.common.Cools; import com.core.common.SnowflakeIdWorker; import com.core.exception.CoolException; +import com.zy.asrs.constant.AsrsConstants; import com.zy.asrs.entity.AgvLocDetl; import com.zy.asrs.entity.AgvLocMast; import com.zy.asrs.entity.AgvWrkDetl; @@ -95,20 +96,22 @@ } - public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq, String type2) { + public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq, String type) { //鏍规嵁鐗╂枡鍙峰拰鎵规鎵惧埌瀵瑰簲鐨勫簱瀛橈紝骞朵笖鎸夌収淇敼鏃堕棿鎺掑簭 Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr).orderBy("modi_time"); -// if (type != null) { -// wrapper.notLike("loc_no", "F1"); -// } + if (type != null) { + if (type.equals(AsrsConstants.ERCHANG)){ + wrapper.notLike("loc_no", "F3"); + }else { + wrapper.notLike("loc_no", "F1"); + } + } wapperSetCondition(wrapper, "batch", batch); wapperSetCondition(wrapper, "three_code", csocode); //wapperSetCondition(wrapper, "dead_time", isoseq); if ("JG".equals(orderNo.substring(0, 2))) { wapperSetCondition(wrapper, "process_sts", "1"); - } else { - wrapper.ne("process_sts", "1"); } List<AgvLocDetl> agvLocDetls = this.selectList(wrapper); diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java index ddb7f00..8ac6675 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java @@ -977,7 +977,8 @@ } else { orderDetl = orderDetls.get(0); } - orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme()); + double v = orderDetl.getQty() - agvWrkDetl.getAnfme(); + orderDetl.setQty(v < 0 ? 0 : v); if (!orderDetlService.updateById(orderDetl)) { throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�" + orderDetl.getOrderNo() + orderDetl.getMatnr()); } -- Gitblit v1.9.1