|  |  |  | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | 
|---|
|  |  |  | import com.jilongda.common.basic.PageInfo; | 
|---|
|  |  |  | import com.jilongda.manage.mapper.TBrandMapper; | 
|---|
|  |  |  | import com.jilongda.manage.mapper.TMaterialMapper; | 
|---|
|  |  |  | import com.jilongda.manage.mapper.TSupplierMapper; | 
|---|
|  |  |  | import com.jilongda.manage.model.TBrand; | 
|---|
|  |  |  | import com.jilongda.manage.model.TMaterial; | 
|---|
|  |  |  | import com.jilongda.manage.model.TModel; | 
|---|
|  |  |  | import com.jilongda.manage.mapper.TModelMapper; | 
|---|
|  |  |  | import com.jilongda.manage.model.TSupplier; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.jilongda.manage.vo.TModelVO; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  | import org.springframework.util.CollectionUtils; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.ArrayList; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.Objects; | 
|---|
|  |  |  | import java.util.stream.Collectors; | 
|---|
|  |  |  | 
|---|
|  |  |  | private TBrandMapper brandMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private TSupplierMapper supplierMapper; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private TMaterialMapper materialMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public Boolean upAndDown(String name, Integer status) { | 
|---|
|  |  |  | 
|---|
|  |  |  | public PageInfo<TModelVO> pageList(TModelQuery query) { | 
|---|
|  |  |  | PageInfo<TModelVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); | 
|---|
|  |  |  | List<TModelVO> list = this.baseMapper.pageList(query,pageInfo); | 
|---|
|  |  |  | List<Integer> brandIds = list.stream().map(TModel::getBrandId).collect(Collectors.toList()); | 
|---|
|  |  |  | List<Integer> supplierIds= list.stream().map(TModel::getSupplierId).collect(Collectors.toList()); | 
|---|
|  |  |  | List<TBrand> tBrands = brandMapper.selectList(Wrappers.lambdaQuery(TBrand.class) | 
|---|
|  |  |  | .in(TBrand::getId, brandIds)); | 
|---|
|  |  |  | List<TSupplier> tSuppliers = supplierMapper.selectList(Wrappers.lambdaQuery(TSupplier.class) | 
|---|
|  |  |  | .in(TSupplier::getId, supplierIds)); | 
|---|
|  |  |  | for (TModelVO modelVO : list) { | 
|---|
|  |  |  | TBrand tBrand = tBrands.stream().filter(brand -> brand.getId().equals(modelVO.getBrandId())).findFirst().orElse(null); | 
|---|
|  |  |  | if(Objects.nonNull(tBrand)){ | 
|---|
|  |  |  | modelVO.setBrandName(tBrand.getName()); | 
|---|
|  |  |  | if(!CollectionUtils.isEmpty(list)){ | 
|---|
|  |  |  | List<Integer> brandIds = list.stream().map(TModel::getBrandId).collect(Collectors.toList()); | 
|---|
|  |  |  | List<Integer> supplierIds= list.stream().map(TModel::getSupplierId).collect(Collectors.toList()); | 
|---|
|  |  |  | List<Integer> materialIds= list.stream().map(TModel::getMaterialId).collect(Collectors.toList()); | 
|---|
|  |  |  | List<TBrand> tBrands = new ArrayList<>(); | 
|---|
|  |  |  | if(!CollectionUtils.isEmpty(brandIds)){ | 
|---|
|  |  |  | tBrands = brandMapper.selectList(Wrappers.lambdaQuery(TBrand.class) | 
|---|
|  |  |  | .in(TBrand::getId, brandIds)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | TSupplier tSupplier = tSuppliers.stream().filter(supplier -> supplier.getId().equals(modelVO.getSupplierId())).findFirst().orElse(null); | 
|---|
|  |  |  | if(Objects.nonNull(tSupplier)){ | 
|---|
|  |  |  | modelVO.setSupplierName(tSupplier.getName()); | 
|---|
|  |  |  | List<TSupplier> tSuppliers = new ArrayList<>(); | 
|---|
|  |  |  | if(!CollectionUtils.isEmpty(supplierIds)){ | 
|---|
|  |  |  | tSuppliers = supplierMapper.selectList(Wrappers.lambdaQuery(TSupplier.class) | 
|---|
|  |  |  | .in(TSupplier::getId, supplierIds)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<TMaterial> materials = new ArrayList<>(); | 
|---|
|  |  |  | if(!CollectionUtils.isEmpty(materialIds)){ | 
|---|
|  |  |  | materials = materialMapper.selectList(Wrappers.lambdaQuery(TMaterial.class) | 
|---|
|  |  |  | .in(TMaterial::getId, materialIds)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (TModelVO modelVO : list) { | 
|---|
|  |  |  | TBrand tBrand = tBrands.stream().filter(brand -> brand.getId().equals(modelVO.getBrandId())).findFirst().orElse(null); | 
|---|
|  |  |  | if(Objects.nonNull(tBrand)){ | 
|---|
|  |  |  | modelVO.setBrandName(tBrand.getName()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | TSupplier tSupplier = tSuppliers.stream().filter(supplier -> supplier.getId().equals(modelVO.getSupplierId())).findFirst().orElse(null); | 
|---|
|  |  |  | if(Objects.nonNull(tSupplier)){ | 
|---|
|  |  |  | modelVO.setSupplierName(tSupplier.getName()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | TMaterial tMaterial = materials.stream().filter(material -> material.getId().equals(modelVO.getMaterialId())).findFirst().orElse(null); | 
|---|
|  |  |  | if(Objects.nonNull(tMaterial)){ | 
|---|
|  |  |  | modelVO.setMaterialName(tMaterial.getName()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 查询型号的色号 | 
|---|
|  |  |  | List<TModel> colorList = this.list(Wrappers.lambdaQuery(TModel.class) | 
|---|
|  |  |  | .eq(TModel::getName,modelVO.getName())); | 
|---|
|  |  |  | String color = colorList.stream().map(TModel::getColor).collect(Collectors.joining(",")); | 
|---|
|  |  |  | modelVO.setColor(color); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | pageInfo.setRecords(list); | 
|---|