Merge branch 'ww' into test

This commit is contained in:
wangw 2024-10-10 16:04:43 +08:00
commit 58ef3ae818
2 changed files with 19 additions and 3 deletions

View File

@ -4,7 +4,6 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.util.ObjectUtil;
import cn.ysk.cashier.cons.domain.TbConsInfo;
import cn.ysk.cashier.cons.domain.TbConsSuppFlow;
import cn.ysk.cashier.cons.domain.TbProskuCon;
import cn.ysk.cashier.cons.repository.TbConsInfoRepository;
import cn.ysk.cashier.cons.service.dto.ProskuInfo;
@ -22,13 +21,13 @@ import cn.ysk.cashier.cons.service.dto.TbProskuConDto;
import cn.ysk.cashier.cons.service.dto.TbProskuConQueryCriteria;
import cn.ysk.cashier.cons.service.mapstruct.TbProskuConMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.*;
import java.io.IOException;
@ -168,6 +167,10 @@ public class TbProskuConServiceImpl implements TbProskuConService {
tbProskuConRepository.deleteAllByProductId(resources.getProductId());
return;
}
List<TbProskuConDto> cons = resources.getCons();
if(hasIdentical(cons)){
throw new BadRequestException("添加失败,对应耗材存在多条关系");
}
List<TbProskuCon> newCons = new ArrayList<>();
TbProduct product = tbProductRepository.getById(resources.getProductId());
if (Objects.isNull(product)) {
@ -196,6 +199,9 @@ public class TbProskuConServiceImpl implements TbProskuConService {
if (ObjectUtil.isNull(tbConsInfo) || ObjectUtil.isNull(tbConsInfo.getId())) {
throw new BadRequestException("对应的耗材信息不存在");
}
if (resource.getSurplusStock().compareTo(BigDecimal.ZERO) <= 0) {
throw new BadRequestException("耗材"+ tbConsInfo.getConName() +"使用数量不可小于等于 0");
}
TbProductSku sku = null;
if (resource.getProductSkuId() != 0) {
sku = tbProductSkuRepository.findById(resource.getProductSkuId()).orElseGet(TbProductSku::new);
@ -226,6 +232,16 @@ public class TbProskuConServiceImpl implements TbProskuConService {
}
}
public static boolean hasIdentical(List<TbProskuConDto> cons) {
List<List<TbProskuConDto>> groupedByAllFields = cons.stream()
.collect(Collectors.groupingBy(item -> item.getProductSkuId() + "-" + item.getConInfoId() + "-" + item.getShopId() + "-" + item.getProductId()))
.values().stream()
.filter(group -> group.size() > 1)
.collect(Collectors.toList());
return!groupedByAllFields.isEmpty();
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(TbProskuCon resources) throws Exception {

View File

@ -273,7 +273,7 @@ public class TbProductServiceImpl implements TbProductService {
}
}
}
productNewVo.setConInfos(CollectionUtils.isEmpty(skuCons)?Arrays.asList():skuCons);
productNewVo.setConInfos(CollectionUtils.isEmpty(skuCons)? Collections.emptyList() :skuCons);
products.add(productNewVo);
}
Map<String, Object> result = PageUtil.toPage(products, page.getTotalElements());