diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/OutSourceCompanyInfoServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/OutSourceCompanyInfoServiceImpl.java index 147162dc..e822e231 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/OutSourceCompanyInfoServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/OutSourceCompanyInfoServiceImpl.java @@ -98,7 +98,7 @@ public class OutSourceCompanyInfoServiceImpl implements OutSourceCompanyInfoServ List outSourceCompanyContactList = new Gson().fromJson(outSourceCompanyJsonStr,new TypeToken>() {}.getType()); if(!CollectionUtils.isEmpty(outSourceCompanyContactList)){ for(OutSourceCompanyContact outSourceCompanyContact : outSourceCompanyContactList){ - if(outSourceCompanyContact.getFirstTag() == 1){ + if(!StringUtils.isEmpty(outSourceCompanyContact.getFirstTag()) && outSourceCompanyContact.getFirstTag() == 1){ outSourceCompanyInfoDTO.setFirstContactMobile(outSourceCompanyContact.getMobile()); outSourceCompanyInfoDTO.setFirstContactName(outSourceCompanyContact.getName()); } @@ -188,11 +188,52 @@ public class OutSourceCompanyInfoServiceImpl implements OutSourceCompanyInfoServ } List outSourceCompanyContactList = createOutSourceCompanyInfoRequest.getOutSourceCompanyContact(); if(!CollectionUtils.isEmpty(outSourceCompanyContactList)){ + Boolean firstTagFlag = false; + for(OutSourceCompanyContact outSourceCompanyContact: outSourceCompanyContactList){ + String name = outSourceCompanyContact.getName(); + if(StringUtils.isEmpty(name)){ + throw new BadRequestException("联系人姓名不能为空!"); + } + String mobile = outSourceCompanyContact.getMobile(); + if(StringUtils.isEmpty(mobile)){ + throw new BadRequestException("联系人" + name +"对应的手机号码不能为空!"); + } + String phone = outSourceCompanyContact.getPhone(); + if(StringUtils.isEmpty(phone)){ + throw new BadRequestException("联系人" + name +"对应的座机不能为空!"); + } + String email = outSourceCompanyContact.getEmail(); + if(StringUtils.isEmpty(email)){ + throw new BadRequestException("联系人" + name +"对应的邮箱不能为空!"); + } + String weixin = outSourceCompanyContact.getWeixin(); + if(StringUtils.isEmpty(weixin)){ + throw new BadRequestException("联系人" + name +"对应的微信不能为空!"); + } + String qq = outSourceCompanyContact.getQq(); + if(StringUtils.isEmpty(qq)){ + throw new BadRequestException("联系人" + name +"对应的qq不能为空!"); + } + Integer firstTag = outSourceCompanyContact.getFirstTag(); + if(null == firstTag){ + throw new BadRequestException("联系人" + name +"对应的首要联系人不能为空!"); + } + if(firstTag == 1){ + firstTagFlag = true; + } + } + if(!firstTagFlag){ + throw new BadRequestException("委外公司联系人必须设置一个首要联系人!"); + } String outSourceCompanyContactStr = new Gson().toJson(outSourceCompanyContactList); outSourceCompanyInfo.setOutSourceCompanyContact(outSourceCompanyContactStr); outSourceCompanyInfoDetailDTO.setOutSourceCompanyContact(outSourceCompanyContactList); + }else{ + throw new BadRequestException("委外公司联系人不能为空!"); } + + outSourceCompanyInfo = outSourceCompanyInfoRepository.save(outSourceCompanyInfo); OutSourceCompanyInfoDTO outSourceCompanyInfoDTO = outSourceCompanyInfoMapper.toDto(outSourceCompanyInfo); BeanUtils.copyProperties(outSourceCompanyInfoDTO, outSourceCompanyInfoDetailDTO); diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/ProductInfoServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/ProductInfoServiceImpl.java index 0dc7d27f..42b69c52 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/ProductInfoServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/ProductInfoServiceImpl.java @@ -9,10 +9,14 @@ import me.zhengjie.modules.wms.bd.repository.ProductCategoryRepository; import me.zhengjie.modules.wms.bd.repository.ProductSeriesRepository; import me.zhengjie.modules.wms.bd.request.*; import me.zhengjie.modules.wms.bd.service.dto.*; +import me.zhengjie.modules.wms.sr.productCount.domain.ProductCount; +import me.zhengjie.modules.wms.sr.productCount.repository.ProductCountRepository; import me.zhengjie.utils.ValidationUtil; import me.zhengjie.modules.wms.bd.repository.ProductInfoRepository; import me.zhengjie.modules.wms.bd.service.ProductInfoService; import me.zhengjie.modules.wms.bd.service.mapper.ProductInfoMapper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.jpa.domain.Specification; @@ -46,6 +50,8 @@ import javax.persistence.criteria.Root; @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class) public class ProductInfoServiceImpl implements ProductInfoService { + private Logger logger = LoggerFactory.getLogger(this.getClass()); + @Autowired private ProductInfoRepository productInfoRepository; @@ -61,6 +67,9 @@ public class ProductInfoServiceImpl implements ProductInfoService { @Autowired private ProductSeriesRepository productSeriesRepository; + @Autowired + private ProductCountRepository productCountRepository; + @Override public Object queryAll(ProductInfoQueryCriteria criteria, Pageable pageable){ Specification specification = new Specification() { @@ -190,6 +199,15 @@ public class ProductInfoServiceImpl implements ProductInfoService { productInfo = productInfoRepository.save(productInfo); ProductInfoDTO productInfoDTO = productInfoMapper.toDto(productInfo); BeanUtils.copyProperties(productInfoDTO, productInfoDetailDTO); + + // 新增产品统计数据 + ProductCount productCount = new ProductCount(); + productCount.setProductName(productInfo.getName()); + productCount.setProductCategoryId(productInfo.getProductCategoryId()); + productCount.setProductCategoryName(productInfo.getProductCategoryName()); + productCount.setProductSeriesId(productInfo.getProductSeriesId()); + productCount.setProductSeriesName(productInfo.getProductSeriesName()); + productCountRepository.save(productCount); return productInfoDetailDTO; } @@ -274,6 +292,26 @@ public class ProductInfoServiceImpl implements ProductInfoService { productInfo.setProductCategoryName(productCategory.getName()); // 修改客户资料 productInfoRepository.save(productInfo); + + // 根据产品主键查看产品统计是否存在,如果存在则不操作,不存在则插入 + ProductCount productCount = productCountRepository.findByProductId(productInfoId); + if(null == productCount){ + productCount = new ProductCount(); + productCount.setProductId(productInfoId); + productCount.setProductName(productInfo.getName()); + productCount.setProductSeriesName(productInfo.getProductSeriesName()); + productCount.setProductSeriesId(productInfo.getProductSeriesId()); + productCount.setProductCategoryName(productInfo.getProductCategoryName()); + productCount.setProductCategoryId(productInfo.getProductCategoryId()); + logger.info("新增产品统计;[]", new Gson().toJson(productCount)); + productCountRepository.save(productCount); + }else{ + productCount.setProductSeriesId(productInfo.getProductSeriesId()); + productCount.setProductSeriesName(productInfo.getProductSeriesName()); + productCount.setProductCategoryId(productInfo.getProductCategoryId()); + productCount.setProductCategoryName(productInfo.getProductCategoryName()); + productCountRepository.save(productCount); + } } @Override diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/service/ProductCountService.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/service/ProductCountService.java index d27666c1..4c890b43 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/service/ProductCountService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/service/ProductCountService.java @@ -40,6 +40,13 @@ public interface ProductCountService { //@Cacheable(key = "#p0") ProductCountDTO findById(Long id); + /** + * 根据productId查看产品统计 + * @param productId + * @return + */ + public ProductCountDTO findByProductId(Long productId); + /** * create * @param resources diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/service/impl/ProductCountServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/service/impl/ProductCountServiceImpl.java index 3626fcc9..abdbfc4e 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/service/impl/ProductCountServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/service/impl/ProductCountServiceImpl.java @@ -59,6 +59,13 @@ public class ProductCountServiceImpl implements ProductCountService { return productCountMapper.toDto(srProductCount.get()); } + @Override + public ProductCountDTO findByProductId(Long productId) { + + ProductCount productCount = productCountMapper.findByProductId(productId); + return productCountMapper.toDto(productCount); + } + @Override @Transactional(rollbackFor = Exception.class) public ProductCountDTO create(ProductCount resources) { diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/service/mapper/ProductCountMapper.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/service/mapper/ProductCountMapper.java index 5d91c6fc..a88ab826 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/service/mapper/ProductCountMapper.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/sr/productCount/service/mapper/ProductCountMapper.java @@ -1,10 +1,12 @@ package me.zhengjie.modules.wms.sr.productCount.service.mapper; import me.zhengjie.mapper.EntityMapper; +import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheet; import me.zhengjie.modules.wms.sr.productCount.domain.ProductCount; import me.zhengjie.modules.wms.sr.productCount.service.dto.ProductCountDTO; import org.mapstruct.Mapper; import org.mapstruct.ReportingPolicy; +import org.springframework.data.jpa.repository.Query; /** * @author jie @@ -13,4 +15,7 @@ import org.mapstruct.ReportingPolicy; @Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE) public interface ProductCountMapper extends EntityMapper { + @Query(value ="select * from sr_product_count where product_id = ?1", nativeQuery = true) + ProductCount findByProductId(Long productId); + } \ No newline at end of file