|
@@ -1,10 +1,14 @@
|
|
|
package com.fjhx.purchase.service.arrival.impl;
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fjhx.common.constant.SourceConstant;
|
|
|
import com.fjhx.item.entity.product.vo.ProductInfoVo;
|
|
|
+import com.fjhx.item.service.product.ProductClassifyService;
|
|
|
import com.fjhx.item.service.product.ProductInfoService;
|
|
|
import com.fjhx.purchase.entity.arrival.dto.ArrivalDetailDto;
|
|
|
import com.fjhx.purchase.entity.arrival.dto.ArrivalDetailSelectDto;
|
|
@@ -13,17 +17,12 @@ import com.fjhx.purchase.entity.arrival.vo.ArrivalDetailVo;
|
|
|
import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
|
|
|
import com.fjhx.purchase.mapper.arrival.ArrivalDetailMapper;
|
|
|
import com.fjhx.purchase.service.arrival.ArrivalDetailService;
|
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.fjhx.purchase.service.quality.QualityDetailService;
|
|
|
-import com.fjhx.supply.entity.supplier.po.SupplierInfo;
|
|
|
import com.fjhx.supply.service.supplier.SupplierInfoService;
|
|
|
-import com.ruoyi.common.utils.StringUtils;
|
|
|
+import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
import org.apache.commons.collections4.MapUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
-import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
-import cn.hutool.core.bean.BeanUtil;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
@@ -51,48 +50,47 @@ public class ArrivalDetailServiceImpl extends ServiceImpl<ArrivalDetailMapper, A
|
|
|
private ProductInfoService productInfoService;
|
|
|
|
|
|
@Autowired
|
|
|
+ private ProductClassifyService productClassifyService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
private QualityDetailService qualityDetailService;
|
|
|
+
|
|
|
/**
|
|
|
* 分页
|
|
|
+ *
|
|
|
* @param dto
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
public Page<ArrivalDetailVo> getPage(ArrivalDetailSelectDto dto) {
|
|
|
IWrapper<ArrivalDetail> wrapper = getWrapper();
|
|
|
- if(StringUtils.isNotEmpty(dto.getStatus())){
|
|
|
- wrapper.eq("t1", PurchaseDetail::getStatus,dto.getStatus());
|
|
|
- }
|
|
|
+ wrapper.eq("t1", PurchaseDetail::getStatus, dto.getStatus());
|
|
|
wrapper.orderByDesc("t1", ArrivalDetail::getCreateTime);
|
|
|
wrapper.groupBy("t1.id");
|
|
|
Page<ArrivalDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
|
|
|
List<ArrivalDetailVo> list = page.getRecords();
|
|
|
- if(CollectionUtils.isNotEmpty(list)){
|
|
|
- //查询供应商
|
|
|
- List<Long> supplyIds = list.stream().map(ArrivalDetailVo::getSupplyId).collect(Collectors.toList());
|
|
|
- List<SupplierInfo> supplierInfoList = supplierInfoService.list(Wrappers.<SupplierInfo>query().lambda().in(SupplierInfo::getId,supplyIds));
|
|
|
- Map<Long,List<SupplierInfo>> supplyMap = supplierInfoList.stream().distinct().collect(Collectors.groupingBy(SupplierInfo::getId));
|
|
|
- if(MapUtils.isNotEmpty(supplyMap)){
|
|
|
- for(ArrivalDetailVo p:list){
|
|
|
- List<SupplierInfo> supplys = supplyMap.getOrDefault(p.getSupplyId(),null);
|
|
|
- p.setSupplyName(supplys==null?null:supplys.get(0).getName());
|
|
|
- }
|
|
|
- }
|
|
|
- //查询产品
|
|
|
- List<Long> productIds = list.stream().map(ArrivalDetailVo::getBussinessId).collect(Collectors.toList());
|
|
|
- List<ProductInfoVo> productInfoVos = productInfoService.getListByProductIds(productIds);
|
|
|
- Map<Long, List<ProductInfoVo>> productMap = productInfoVos.stream().collect(Collectors.groupingBy(ProductInfoVo::getId));
|
|
|
- if(MapUtils.isNotEmpty(productMap)) {
|
|
|
- for(ArrivalDetailVo s:list){
|
|
|
- ProductInfoVo p = productMap.get(s.getBussinessId()).get(0);
|
|
|
- s.setProductCategory(p.getClassifyName());
|
|
|
- s.setProductCode(p.getCode());
|
|
|
- s.setProductUnit(p.getUnit());
|
|
|
- s.setProductType(p.getType());
|
|
|
- s.setProductName(p.getName());
|
|
|
- s.setProductSpec(p.getSpec());
|
|
|
- }
|
|
|
- }
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
+
|
|
|
+ // 赋值供应商名称
|
|
|
+ supplierInfoService.attributeAssign(list, ArrivalDetailVo::getSupplyId, (item, supplier) -> {
|
|
|
+ item.setSupplyName(supplier.getName());
|
|
|
+ });
|
|
|
+
|
|
|
+ // 赋值产品属性
|
|
|
+ productInfoService.attributeAssign(list, ArrivalDetail::getBussinessId, (item, product) -> {
|
|
|
+ item.setProductCode(product.getCode());
|
|
|
+ item.setProductUnit(product.getUnit());
|
|
|
+ item.setProductType(product.getType());
|
|
|
+ item.setProductName(product.getName());
|
|
|
+ item.setProductSpec(product.getSpec());
|
|
|
+ item.setProductCategoryId(product.getProductClassifyId());
|
|
|
+ });
|
|
|
+
|
|
|
+ // 赋值产品分类名称
|
|
|
+ productClassifyService.attributeAssign(list, ArrivalDetailVo::getProductCategoryId, (item, productClassify) -> {
|
|
|
+ item.setProductCategory(productClassify.getName());
|
|
|
+ });
|
|
|
+
|
|
|
}
|
|
|
return page;
|
|
|
}
|