From 475d76eeab793ece4fc9014d547d6cd163b0408f Mon Sep 17 00:00:00 2001 From: sxu <602087911@qq.com> Date: Thu, 16 Jan 2025 20:45:51 +0800 Subject: [PATCH] fix bug http://192.168.0.14:1888/bug-view-2683.html --- .../service/impl/BackApplyServiceImpl.java | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/BackApplyServiceImpl.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/BackApplyServiceImpl.java index 34ff101..e031b3f 100644 --- a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/BackApplyServiceImpl.java +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/BackApplyServiceImpl.java @@ -94,21 +94,32 @@ public class BackApplyServiceImpl implements BackApplyService { @Override public boolean isBackApplyNumberCorrect(BackApplyInfo bean) { boolean isCorrect = true; //默认合法 + Map oldBackMap = new HashMap<>(); + Map leaseMap = new HashMap<>(); + Map thisBackMap = new HashMap<>(); // 查看出库数据 - List backTypes = backApplyMapper.getBackApplyDetailsTypeCount(bean); + List oldBackTypes = backApplyMapper.getBackApplyDetailsTypeCount(bean); + if (CollectionUtils.isNotEmpty(oldBackTypes)) { + oldBackMap = oldBackTypes.stream().collect(Collectors.groupingBy(BackApplyInfo::getTypeId, + Collectors.summingInt(BackApplyInfo::getBackNum))); + } // 查看退料已审核数据 List leaseTypes = leaseApplyDetailsMapper.getLeaseApplyDetailsTypeCount(bean); + if (CollectionUtils.isNotEmpty(leaseTypes)) { + leaseMap = leaseTypes.stream().collect(Collectors.groupingBy(LeaseApplyDetails::getTypeId, + Collectors.summingInt(LeaseApplyDetails::getAlNum))); + } // 比较本次退料数据,是否大于前两者的差额,大于就报错 - List thisBackTypes = bean.getBackApplyDetails(); + if (CollectionUtils.isNotEmpty(bean.getBackApplyDetails())) { + thisBackMap = bean.getBackApplyDetails().stream().collect(Collectors.groupingBy(BackApplyInfo::getTypeId, + Collectors.summingInt(BackApplyInfo::getNum))); + } // 判断3个list是否具备合法性 - Map oldBackMap = backTypes.stream().collect(Collectors.groupingBy(BackApplyInfo::getTypeId, - Collectors.summingInt(BackApplyInfo::getBackNum))); - Map leaseMap = leaseTypes.stream().collect(Collectors.groupingBy(LeaseApplyDetails::getTypeId, - Collectors.summingInt(LeaseApplyDetails::getAlNum))); - Map thisBackMap = thisBackTypes.stream().collect(Collectors.groupingBy(BackApplyInfo::getTypeId, - Collectors.summingInt(BackApplyInfo::getNum))); for (Integer key : leaseMap.keySet()) { - if (oldBackMap.get(String.valueOf(key)) + thisBackMap.get(String.valueOf(key)) > leaseMap.get(key)) { + int oldBackNum = Objects.isNull(oldBackMap.get(String.valueOf(key))) ? 0 : oldBackMap.get(String.valueOf(key)); + int thisBackNum = Objects.isNull(thisBackMap.get(String.valueOf(key))) ? 0 : thisBackMap.get(String.valueOf(key)); + int leaseNum = Objects.isNull(leaseMap.get(key)) ? 0 : leaseMap.get(key); + if (oldBackNum + thisBackNum > leaseNum) { return false; } }