|
@@ -5,32 +5,66 @@ import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.fjhx.area.utils.CustomizeAreaUtil;
|
|
|
import com.fjhx.common.constant.SourceConstant;
|
|
|
+import com.fjhx.common.entity.corporation.po.Corporation;
|
|
|
+import com.fjhx.common.service.corporation.CorporationService;
|
|
|
+import com.fjhx.customer.entity.customer.po.Customer;
|
|
|
+import com.fjhx.customer.service.customer.CustomerService;
|
|
|
+import com.fjhx.sale.entity.intermediate.vo.IntermediateContractVo;
|
|
|
+import com.fjhx.sale.entity.pack.po.PackDetail;
|
|
|
+import com.fjhx.sale.entity.pack.po.PackDetailProduct;
|
|
|
+import com.fjhx.sale.entity.pack.vo.PackDetailProductVo;
|
|
|
import com.fjhx.sale.entity.purchase.dto.EhsdPurchaseDto;
|
|
|
import com.fjhx.sale.entity.purchase.dto.EhsdPurchaseSelectDto;
|
|
|
import com.fjhx.sale.entity.purchase.po.EhsdPurchase;
|
|
|
+import com.fjhx.sale.entity.purchase.po.EhsdPurchaseProduct;
|
|
|
+import com.fjhx.sale.entity.purchase.vo.EhsdPurchaseProductVo;
|
|
|
import com.fjhx.sale.entity.purchase.vo.EhsdPurchaseVo;
|
|
|
import com.fjhx.sale.mapper.purchase.EhsdPurchaseMapper;
|
|
|
+import com.fjhx.sale.service.pack.PackDetailProductService;
|
|
|
+import com.fjhx.sale.service.pack.PackDetailService;
|
|
|
+import com.fjhx.sale.service.purchase.EhsdPurchaseProductService;
|
|
|
import com.fjhx.sale.service.purchase.EhsdPurchaseService;
|
|
|
import com.ruoyi.common.utils.wrapper.IWrapper;
|
|
|
import com.ruoyi.common.utils.wrapper.SqlField;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.lang.reflect.Array;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
|
* ehsd采购表 服务实现类
|
|
|
* </p>
|
|
|
*
|
|
|
- * @author
|
|
|
+ * @author
|
|
|
* @since 2023-05-17
|
|
|
*/
|
|
|
@Service
|
|
|
@DS(SourceConstant.SALE)
|
|
|
public class EhsdPurchaseServiceImpl extends ServiceImpl<EhsdPurchaseMapper, EhsdPurchase> implements EhsdPurchaseService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private EhsdPurchaseProductService ehsdPurchaseProductService;
|
|
|
+ @Autowired
|
|
|
+ private PackDetailProductService packDetailProductService;
|
|
|
+ @Autowired
|
|
|
+ private PackDetailService packDetailService;
|
|
|
+ @Autowired
|
|
|
+ private CustomerService customerService;
|
|
|
+ @Autowired
|
|
|
+ private CorporationService corporationService;
|
|
|
+
|
|
|
/**
|
|
|
* 分页
|
|
|
+ *
|
|
|
* @param dto
|
|
|
* @return
|
|
|
*/
|
|
@@ -45,7 +79,7 @@ public class EhsdPurchaseServiceImpl extends ServiceImpl<EhsdPurchaseMapper, Ehs
|
|
|
wrapper.eq("t1", EhsdPurchase::getPayStatus, dto.getPayStatus());
|
|
|
}
|
|
|
if (ObjectUtils.isNotEmpty(dto.getKeyword())) {
|
|
|
- wrapper.keyword(dto.getKeyword(),new SqlField("t2.name"),new SqlField("t1.`code`"));
|
|
|
+ wrapper.keyword(dto.getKeyword(), new SqlField("t2.name"), new SqlField("t1.`code`"));
|
|
|
}
|
|
|
Page<EhsdPurchaseVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
|
|
|
return page;
|
|
@@ -53,8 +87,49 @@ public class EhsdPurchaseServiceImpl extends ServiceImpl<EhsdPurchaseMapper, Ehs
|
|
|
|
|
|
@Override
|
|
|
public EhsdPurchaseVo detail(Long id) {
|
|
|
- EhsdPurchase EhsdPurchase = this.getById(id);
|
|
|
- EhsdPurchaseVo result = BeanUtil.toBean(EhsdPurchase, EhsdPurchaseVo.class);
|
|
|
+ EhsdPurchase ehsdPurchase = this.getById(id);
|
|
|
+ EhsdPurchaseVo result = BeanUtil.toBean(ehsdPurchase, EhsdPurchaseVo.class);
|
|
|
+ List<Long> ids = new ArrayList<>();
|
|
|
+ ids.add(result.getBuyCountryId());
|
|
|
+ ids.add(result.getBuyProvinceId());
|
|
|
+ ids.add(result.getBuyCityId());
|
|
|
+ ids.add(result.getSellCountryId());
|
|
|
+ ids.add(result.getSellProvinceId());
|
|
|
+ ids.add(result.getSellCityId());
|
|
|
+ Map<Long, String> areaMapByIds = CustomizeAreaUtil.getAreaMapByIds(ids);
|
|
|
+ //赋值卖方地址
|
|
|
+ result.setSellCountryName(areaMapByIds.get(result.getSellCountryId()));
|
|
|
+ result.setSellProvinceName(areaMapByIds.get(result.getSellProvinceId()));
|
|
|
+ result.setSellCityName(areaMapByIds.get(result.getSellCityId()));
|
|
|
+ //赋值买方地址
|
|
|
+ result.setBuyCountryName(areaMapByIds.get(result.getBuyCountryId()));
|
|
|
+ result.setBuyProvinceName(areaMapByIds.get(result.getBuyProvinceId()));
|
|
|
+ result.setBuyCityName(areaMapByIds.get(result.getBuyCityId()));
|
|
|
+
|
|
|
+ //赋值买卖方名称
|
|
|
+ Customer customer = customerService.getById(result.getBuyCorporationId());
|
|
|
+ if(ObjectUtils.isNotEmpty(customer)){
|
|
|
+ result.setBuyCorporationName(customer.getName());
|
|
|
+ }
|
|
|
+ Corporation corporation = corporationService.getById(result.getSellCorporationId());
|
|
|
+ if(ObjectUtils.isNotEmpty(corporation)){
|
|
|
+ result.setSellCorporationName(corporation.getName());
|
|
|
+ }
|
|
|
+ //赋值采购明细
|
|
|
+ List<EhsdPurchaseProduct> ehsdPurchaseProductList = ehsdPurchaseProductService.list(q ->
|
|
|
+ q.eq(EhsdPurchaseProduct::getPurchaseId, ehsdPurchase.getId())
|
|
|
+ );
|
|
|
+ List<EhsdPurchaseProductVo> ehsdPurchaseProductVos = BeanUtil.copyToList(ehsdPurchaseProductList, EhsdPurchaseProductVo.class);
|
|
|
+ result.setEhsdPurchaseProductList(ehsdPurchaseProductVos);
|
|
|
+ //赋值出货明细
|
|
|
+ List<Long> cpIds = ehsdPurchaseProductVos.stream().map(EhsdPurchaseProductVo::getDataResourceId).collect(Collectors.toList());
|
|
|
+ List<PackDetailProduct> packDetailProductList = packDetailProductService.list(q ->
|
|
|
+ q.in(PackDetailProduct::getContractProductId, cpIds)
|
|
|
+ );
|
|
|
+ List<PackDetailProductVo> packDetailProductVos = BeanUtil.copyToList(packDetailProductList, PackDetailProductVo.class);
|
|
|
+ PackDetail packDetail = packDetailService.getById(packDetailProductVos.get(0).getPackDetailId());
|
|
|
+ packDetailProductVos.forEach(item->item.setShipmentTime(packDetail.getShipmentTime()));
|
|
|
+ result.setPackDetailProductList(packDetailProductVos);
|
|
|
return result;
|
|
|
}
|
|
|
|