修改耗材商品批量添加

This commit is contained in:
韩鹏辉 2024-07-10 11:08:10 +08:00
parent 01d7327be6
commit f23fa44c57
3 changed files with 60 additions and 48 deletions

View File

@ -5,6 +5,7 @@ import cn.ysk.cashier.cons.domain.TbProskuCon;
import cn.ysk.cashier.cons.service.TbProskuConService;
import cn.ysk.cashier.cons.service.dto.ProskuInfo;
import cn.ysk.cashier.cons.service.dto.TbProskuConQueryCriteria;
import cn.ysk.cashier.exception.BadRequestException;
import org.springframework.data.domain.Pageable;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
@ -13,6 +14,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*;
import java.io.IOException;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
/**
@ -44,8 +46,14 @@ public class TbProskuConController {
@PostMapping
@Log("新增商品规格耗材信息")
@ApiOperation("新增商品规格耗材信息")
public ResponseEntity<Object> createTbProskuCon(@Validated @RequestBody ProskuInfo resources) throws Exception {
return new ResponseEntity<>(tbProskuConService.create(resources),HttpStatus.CREATED);
public ResponseEntity<Object> createTbProskuCon(@Validated @RequestBody List<ProskuInfo> resources) throws Exception {
try {
return new ResponseEntity<>(tbProskuConService.create(resources),HttpStatus.CREATED);
} catch (BadRequestException be) {
throw new Exception(be.getMessage());
}catch (Exception e){
throw new Exception("系统异常");
}
}
@PutMapping

View File

@ -43,7 +43,7 @@ public interface TbProskuConService {
* @param resources /
* @return TbProskuConDto
*/
TbProskuConDto create(ProskuInfo resources) throws Exception;
TbProskuConDto create(List<ProskuInfo> resources) throws Exception;
/**
* 编辑

View File

@ -6,6 +6,7 @@ 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;
import cn.ysk.cashier.exception.BadRequestException;
import cn.ysk.cashier.pojo.product.TbProduct;
import cn.ysk.cashier.pojo.product.TbProductSku;
import cn.ysk.cashier.repository.product.TbProductRepository;
@ -70,65 +71,68 @@ public class TbProskuConServiceImpl implements TbProskuConService {
@Override
@Transactional(rollbackFor = Exception.class)
public TbProskuConDto create(ProskuInfo resources) throws Exception {
public TbProskuConDto create(List<ProskuInfo> resources) throws BadRequestException,Exception {
for (ProskuInfo resource : resources) {
TbProduct product= tbProductRepository.getById(resource.getProductId());
if(Objects.isNull(product)){
throw new BadRequestException("对应的商品信息不存在");
}
TbProduct product= tbProductRepository.getById(resources.getProductId());
if(Objects.isNull(product)){
throw new Exception("对应的商品信息不存在");
}
TbConsInfo tbConsInfo= tbConsInfoRepository.getById(resource.getConsInfoId());
if(Objects.isNull(tbConsInfo)){
throw new BadRequestException("对应的耗材信息不存在");
}
TbConsInfo tbConsInfo= tbConsInfoRepository.getById(resources.getConsInfoId());
if(Objects.isNull(tbConsInfo)){
throw new Exception("对应的耗材信息不存在");
}
List<TbProskuCon> list=new ArrayList<>();
if(product.getIsDistribute().intValue()==1){
//查询商品对应的所有规格
List<TbProductSku> skuList= tbProductSkuRepository.searchSku(product.getId().toString());
if(Objects.nonNull(skuList)&&skuList.size()>0){
for (TbProductSku tbProductSku : skuList) {
int count=tbProskuConRepository.countByConInfoIdAndProductSkuIdAndShopId(resource.getConsInfoId(), tbProductSku.getId(), Integer.valueOf(tbProductSku.getShopId()), Integer.valueOf(tbProductSku.getProductId()));
if(count<=0){
TbProskuCon tbProskuCon=new TbProskuCon();
List<TbProskuCon> list=new ArrayList<>();
if(product.getIsDistribute().intValue()==1){
//查询商品对应的所有规格
List<TbProductSku> skuList= tbProductSkuRepository.searchSku(product.getId().toString());
if(Objects.nonNull(skuList)&&skuList.size()>0){
for (TbProductSku tbProductSku : skuList) {
int count=tbProskuConRepository.countByConInfoIdAndProductSkuIdAndShopId(resources.getConsInfoId(), tbProductSku.getId(), Integer.valueOf(tbProductSku.getShopId()), Integer.valueOf(tbProductSku.getProductId()));
tbProskuCon.setShopId(Integer.valueOf(tbProductSku.getShopId()));
tbProskuCon.setConInfoId(resource.getConsInfoId());
tbProskuCon.setProductId(Integer.valueOf(tbProductSku.getProductId()));
tbProskuCon.setProductSkuId(tbProductSku.getId());
tbProskuCon.setSurplusStock(resource.getSurplusStock());
tbProskuCon.setStatus("1");
tbProskuCon.setCreateTime(new Timestamp(System.currentTimeMillis()));
list.add(tbProskuCon);
}else {
throw new BadRequestException(product.getName().concat("对应的耗材信息已存在"));
}
}
}
}else {
for (ProskuInfo.SkuInfo skuInfo : resource.getSkuInfos()) {
int count=tbProskuConRepository.countByConInfoIdAndProductSkuIdAndShopId(resource.getConsInfoId(), skuInfo.getSkuId(), skuInfo.getShopId(), resource.getProductId());
if(count<=0){
TbProskuCon tbProskuCon=new TbProskuCon();
tbProskuCon.setShopId(Integer.valueOf(tbProductSku.getShopId()));
tbProskuCon.setConInfoId(resources.getConsInfoId());
tbProskuCon.setProductId(Integer.valueOf(tbProductSku.getProductId()));
tbProskuCon.setProductSkuId(tbProductSku.getId());
tbProskuCon.setSurplusStock(resources.getSurplusStock());
tbProskuCon.setShopId(Integer.valueOf(skuInfo.getShopId()));
tbProskuCon.setConInfoId(skuInfo.getConInfoId());
tbProskuCon.setProductId(resource.getProductId());
tbProskuCon.setProductSkuId(skuInfo.getSkuId());
tbProskuCon.setSurplusStock(skuInfo.getSurplusStock());
tbProskuCon.setStatus("1");
tbProskuCon.setCreateTime(new Timestamp(System.currentTimeMillis()));
list.add(tbProskuCon);
}else {
throw new Exception(product.getName().concat("对应的耗材信息已存在"));
TbProductSku sku= tbProductSkuRepository.getById(skuInfo.getSkuId());
throw new BadRequestException(product.getName().concat("商品对应的").concat(Objects.nonNull(sku.getSpecSnap())?sku.getSpecSnap():"").concat("规格已存在"));
}
}
}
}else {
for (ProskuInfo.SkuInfo skuInfo : resources.getSkuInfos()) {
int count=tbProskuConRepository.countByConInfoIdAndProductSkuIdAndShopId(resources.getConsInfoId(), skuInfo.getSkuId(), skuInfo.getShopId(), resources.getProductId());
if(count<=0){
TbProskuCon tbProskuCon=new TbProskuCon();
tbProskuCon.setShopId(Integer.valueOf(skuInfo.getShopId()));
tbProskuCon.setConInfoId(skuInfo.getConInfoId());
tbProskuCon.setProductId(resources.getProductId());
tbProskuCon.setProductSkuId(skuInfo.getSkuId());
tbProskuCon.setSurplusStock(skuInfo.getSurplusStock());
tbProskuCon.setStatus("1");
tbProskuCon.setCreateTime(new Timestamp(System.currentTimeMillis()));
list.add(tbProskuCon);
}else {
TbProductSku sku= tbProductSkuRepository.getById(skuInfo.getSkuId());
throw new Exception(product.getName().concat("商品对应的").concat(Objects.nonNull(sku.getSpecSnap())?sku.getSpecSnap():"").concat("规格已存在"));
}
}
if(Objects.nonNull(list)&&list.size()>0){
tbProskuConRepository.saveAll(list);
}
}
}
if(Objects.nonNull(list)&&list.size()>0){
tbProskuConRepository.saveAll(list);
}
return new TbProskuConDto();
}