From 11b3ac7e9f6bc9144ddd7a5261cf69796f38d7b3 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期六, 07 九月 2024 13:51:31 +0800 Subject: [PATCH] # --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OutUtils.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 47 insertions(+), 12 deletions(-) diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OutUtils.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OutUtils.java index 5575378..ccc9f87 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OutUtils.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OutUtils.java @@ -2,8 +2,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zy.asrs.wms.asrs.entity.LocDetl; +import com.zy.asrs.wms.asrs.entity.dto.OrderOutBatchPreviewDto; +import com.zy.asrs.wms.asrs.entity.dto.OrderOutMergeDto; import com.zy.asrs.wms.asrs.entity.dto.OutDetlDto; import com.zy.asrs.wms.asrs.entity.dto.OutLocDto; +import com.zy.asrs.wms.asrs.entity.param.OrderOutMergeParam; import com.zy.asrs.wms.asrs.entity.param.OutParam; import com.zy.asrs.wms.asrs.service.LocDetlService; import org.springframework.beans.factory.annotation.Autowired; @@ -53,18 +56,8 @@ OutLocDto locDto = entry.getValue(); locDtos.add(locDto); - List<LocDetl> list = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocId, locDto.getLocId())); - - Double sum = 0D; - for (LocDetl locDetl : list) { - sum += locDetl.getAnfme(); - } - - for (OutDetlDto detl : locDto.getDetls()) { - sum -= detl.getAnfme(); - } - - locDto.setAll(sum == 0); + Boolean all = this.isAllForOut(locDto.getLocId(), locDto.getDetls()); + locDto.setAll(all); locDto.setOperationPort(outParam.getOperationPort()); } @@ -93,4 +86,46 @@ return locDtos; } + public Boolean isAllForMerge(Long locId, List<OrderOutMergeDto> list) { + List<Double> anfmeList = new ArrayList<>(); + for (OrderOutMergeDto dto : list) { + anfmeList.add(dto.getAnfme()); + } + return isAll(locId, anfmeList); + } + + public Boolean isAllForPreview(Long locId, List<OrderOutBatchPreviewDto> list) { + List<Double> anfmeList = new ArrayList<>(); + for (OrderOutBatchPreviewDto outPreviewDto : list) { + anfmeList.add(outPreviewDto.getAnfme()); + } + return isAll(locId, anfmeList); + } + + public Boolean isAllForOut(Long locId, List<OutDetlDto> list) { + List<Double> anfmeList = new ArrayList<>(); + for (OutDetlDto dto : list) { + anfmeList.add(dto.getAnfme()); + } + return isAll(locId, anfmeList); + } + + private Boolean isAll(Long locId, List<Double> anfmeList) { + if (anfmeList.isEmpty()) { + return false; + } + + List<LocDetl> locDetls = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocId, locId)); + Double sum = 0D; + for (LocDetl locDetl : locDetls) { + sum += locDetl.getAnfme(); + } + + for (Double anfme : anfmeList) { + sum -= anfme; + } + + return sum <= 0; + } + } -- Gitblit v1.9.1