This commit is contained in:
sxu 2025-01-16 20:45:51 +08:00
parent b507147335
commit 475d76eeab
1 changed files with 20 additions and 9 deletions

View File

@ -94,21 +94,32 @@ public class BackApplyServiceImpl implements BackApplyService {
@Override
public boolean isBackApplyNumberCorrect(BackApplyInfo bean) {
boolean isCorrect = true; //默认合法
Map<String, Integer> oldBackMap = new HashMap<>();
Map<Integer, Integer> leaseMap = new HashMap<>();
Map<String, Integer> thisBackMap = new HashMap<>();
// 查看出库数据
List<BackApplyInfo> backTypes = backApplyMapper.getBackApplyDetailsTypeCount(bean);
List<BackApplyInfo> oldBackTypes = backApplyMapper.getBackApplyDetailsTypeCount(bean);
if (CollectionUtils.isNotEmpty(oldBackTypes)) {
oldBackMap = oldBackTypes.stream().collect(Collectors.groupingBy(BackApplyInfo::getTypeId,
Collectors.summingInt(BackApplyInfo::getBackNum)));
}
// 查看退料已审核数据
List<LeaseApplyDetails> leaseTypes = leaseApplyDetailsMapper.getLeaseApplyDetailsTypeCount(bean);
if (CollectionUtils.isNotEmpty(leaseTypes)) {
leaseMap = leaseTypes.stream().collect(Collectors.groupingBy(LeaseApplyDetails::getTypeId,
Collectors.summingInt(LeaseApplyDetails::getAlNum)));
}
// 比较本次退料数据是否大于前两者的差额大于就报错
List<BackApplyInfo> thisBackTypes = bean.getBackApplyDetails();
if (CollectionUtils.isNotEmpty(bean.getBackApplyDetails())) {
thisBackMap = bean.getBackApplyDetails().stream().collect(Collectors.groupingBy(BackApplyInfo::getTypeId,
Collectors.summingInt(BackApplyInfo::getNum)));
}
// 判断3个list是否具备合法性
Map<String, Integer> oldBackMap = backTypes.stream().collect(Collectors.groupingBy(BackApplyInfo::getTypeId,
Collectors.summingInt(BackApplyInfo::getBackNum)));
Map<Integer, Integer> leaseMap = leaseTypes.stream().collect(Collectors.groupingBy(LeaseApplyDetails::getTypeId,
Collectors.summingInt(LeaseApplyDetails::getAlNum)));
Map<String, Integer> 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;
}
}