From c635d78b479510ebe2556a420948effcd30a0731 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期六, 21 十二月 2024 18:40:43 +0800 Subject: [PATCH] 新建德森项目分支 --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OutUtils.java | 262 ++++++++++++++++++++++++++-------------------------- 1 files changed, 131 insertions(+), 131 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 ccc9f87..3b9902c 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 @@ -1,131 +1,131 @@ -package com.zy.asrs.wms.utils; - -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; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@Component -public class OutUtils { - - @Autowired - private LocDetlService locDetlService; - - public List<OutLocDto> merge(OutParam outParam) { - HashMap<Long, OutLocDto> map = new HashMap<>(); - - for (OutDetlDto detl : outParam.getDetls()) { - LocDetl locDetl = locDetlService.getById(detl.getDetlId()); - if (locDetl == null) { - continue; - } - detl.setStock(locDetl.getAnfme()); - - if (map.containsKey(locDetl.getLocId())) { - OutLocDto locDto = map.get(locDetl.getLocId()); - List<OutDetlDto> detlDtos = locDto.getDetls(); - detlDtos.add(detl); - - locDto.setDetls(detlDtos); - }else { - OutLocDto locDto = new OutLocDto(); - map.put(locDetl.getLocId(), locDto); - - List<OutDetlDto> detlDtos = new ArrayList<>(); - detlDtos.add(detl); - - locDto.setLocId(locDetl.getLocId()); - locDto.setDetls(detlDtos); - } - } - - List<OutLocDto> locDtos = new ArrayList<>(); - for (Map.Entry<Long, OutLocDto> entry : map.entrySet()) { - OutLocDto locDto = entry.getValue(); - locDtos.add(locDto); - - Boolean all = this.isAllForOut(locDto.getLocId(), locDto.getDetls()); - locDto.setAll(all); - locDto.setOperationPort(outParam.getOperationPort()); - } - - //add zero stock - for (OutLocDto locDto : locDtos) { - List<OutDetlDto> detls = locDto.getDetls(); - List<Long> detlIds = new ArrayList<>(); - for (OutDetlDto detl : detls) { - detlIds.add(detl.getDetlId()); - } - - List<LocDetl> list = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocId, locDto.getLocId()).notIn(LocDetl::getId, detlIds)); - if (!list.isEmpty()) { - List<OutDetlDto> detlDtos = locDto.getDetls(); - for (LocDetl locDetl : list) { - OutDetlDto outDetlDto = new OutDetlDto(); - outDetlDto.setDetlId(locDetl.getId()); - outDetlDto.setAnfme(0D); - outDetlDto.setStock(locDetl.getAnfme()); - detlDtos.add(outDetlDto); - } - locDto.setDetls(detlDtos); - } - } - - 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; - } - -} +package com.zy.asrs.wms.utils; + +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; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Component +public class OutUtils { + + @Autowired + private LocDetlService locDetlService; + + public List<OutLocDto> merge(OutParam outParam) { + HashMap<Long, OutLocDto> map = new HashMap<>(); + + for (OutDetlDto detl : outParam.getDetls()) { + LocDetl locDetl = locDetlService.getById(detl.getDetlId()); + if (locDetl == null) { + continue; + } + detl.setStock(locDetl.getAnfme()); + + if (map.containsKey(locDetl.getLocId())) { + OutLocDto locDto = map.get(locDetl.getLocId()); + List<OutDetlDto> detlDtos = locDto.getDetls(); + detlDtos.add(detl); + + locDto.setDetls(detlDtos); + }else { + OutLocDto locDto = new OutLocDto(); + map.put(locDetl.getLocId(), locDto); + + List<OutDetlDto> detlDtos = new ArrayList<>(); + detlDtos.add(detl); + + locDto.setLocId(locDetl.getLocId()); + locDto.setDetls(detlDtos); + } + } + + List<OutLocDto> locDtos = new ArrayList<>(); + for (Map.Entry<Long, OutLocDto> entry : map.entrySet()) { + OutLocDto locDto = entry.getValue(); + locDtos.add(locDto); + + Boolean all = this.isAllForOut(locDto.getLocId(), locDto.getDetls()); + locDto.setAll(all); + locDto.setOperationPort(outParam.getOperationPort()); + } + + //add zero stock + for (OutLocDto locDto : locDtos) { + List<OutDetlDto> detls = locDto.getDetls(); + List<Long> detlIds = new ArrayList<>(); + for (OutDetlDto detl : detls) { + detlIds.add(detl.getDetlId()); + } + + List<LocDetl> list = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocId, locDto.getLocId()).notIn(LocDetl::getId, detlIds)); + if (!list.isEmpty()) { + List<OutDetlDto> detlDtos = locDto.getDetls(); + for (LocDetl locDetl : list) { + OutDetlDto outDetlDto = new OutDetlDto(); + outDetlDto.setDetlId(locDetl.getId()); + outDetlDto.setAnfme(0D); + outDetlDto.setStock(locDetl.getAnfme()); + detlDtos.add(outDetlDto); + } + locDto.setDetls(detlDtos); + } + } + + 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