@ -2,19 +2,19 @@ package com.qs.serve.modules.goods.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper ;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl ;
import com.qs.serve.common.util.Assert ;
import com.qs.serve.common.util.AuthContextUtils ;
import com.qs.serve.common.util.CollectionUtil ;
import com.qs.serve.common.util.CopierUtil ;
import com.qs.serve.common.model.dto.R ;
import com.qs.serve.common.util.* ;
import com.qs.serve.modules.goods.common.GoodsConst ;
import com.qs.serve.modules.goods.entity.GoodsSkuSpecValue ;
import com.qs.serve.modules.goods.entity.GoodsSpecValue ;
import com.qs.serve.modules.goods.entity.GoodsSpu ;
import com.qs.serve.modules.goods.entity.bo.GoodsSkuBo ;
import com.qs.serve.modules.goods.entity.dto.InventoryCusPrice ;
import com.qs.serve.modules.goods.entity.so.InventoryCusPriceQuery ;
import com.qs.serve.modules.goods.entity.vo.GoodSkuVo ;
import com.qs.serve.modules.goods.entity.vo.GoodsSkuSpecValueVo ;
import com.qs.serve.modules.goods.service.GoodsSkuSpecValueService ;
import com.qs.serve.modules.goods.service.GoodsSpecValueService ;
import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService ;
import lombok.AllArgsConstructor ;
import lombok.extern.slf4j.Slf4j ;
import org.springframework.stereotype.Service ;
@ -28,6 +28,8 @@ import java.util.Map;
import java.util.Set ;
import java.util.stream.Collectors ;
import static com.qs.serve.modules.tbs.common.TbsSeeYonConst.ERP_CUS_INV_PRICE ;
/ * *
* sku 服务实现类
* @author YenHex
@ -40,6 +42,7 @@ public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper,GoodsSku> im
private GoodsSkuSpecValueService goodsSkuSpecValueService ;
private GoodsSpecValueService goodsSpecValueService ;
private SeeYonRequestBaseService seeYonRequestBaseService ;
@Override
public GoodsSku getByCode ( String code ) {
@ -72,6 +75,52 @@ public class GoodsSkuServiceImpl extends ServiceImpl<GoodsSkuMapper,GoodsSku> im
return baseMapper . selectByCategoryIds ( categoryIds , AuthContextUtils . getTenant ( ) ) ;
}
@Override
public void initSkuCusPrice ( String supplierCode , List < GoodsSku > skus ) {
if ( CollectionUtil . isNotEmpty ( skus ) & & StringUtils . hasText ( supplierCode ) ) {
List < String > codes = skus . stream ( ) . map ( GoodsSku : : getSkuCode ) . distinct ( ) . collect ( Collectors . toList ( ) ) ;
InventoryCusPriceQuery query = new InventoryCusPriceQuery ( ) ;
query . setCusCode ( supplierCode ) ;
query . setInvCodes ( codes ) ;
R < String > res = seeYonRequestBaseService . postBase ( ERP_CUS_INV_PRICE , query , "查询客户特殊价" ) ;
if ( res . getStatus ( ) . equals ( 200 ) ) {
List < InventoryCusPrice > inventoryCusPrices = JsonUtil . jsonToList ( res . getData ( ) , InventoryCusPrice . class ) ;
assert inventoryCusPrices ! = null ;
for ( InventoryCusPrice cusPrice : inventoryCusPrices ) {
for ( GoodsSku sku : skus ) {
if ( sku . getSkuCode ( ) . equals ( cusPrice . getInvCode ( ) ) ) {
sku . setSalesPrice ( cusPrice . getPrice ( ) ) ;
break ;
}
}
}
}
}
}
@Override
public void initSkuVoCusPrice ( String supplierCode , List < GoodSkuVo > skus ) {
if ( CollectionUtil . isNotEmpty ( skus ) & & StringUtils . hasText ( supplierCode ) ) {
List < String > codes = skus . stream ( ) . map ( GoodsSku : : getSkuCode ) . distinct ( ) . collect ( Collectors . toList ( ) ) ;
InventoryCusPriceQuery query = new InventoryCusPriceQuery ( ) ;
query . setCusCode ( supplierCode ) ;
query . setInvCodes ( codes ) ;
R < String > res = seeYonRequestBaseService . postBase ( ERP_CUS_INV_PRICE , query , "查询客户特殊价" ) ;
if ( res . getStatus ( ) . equals ( 200 ) ) {
List < InventoryCusPrice > inventoryCusPrices = JsonUtil . jsonToList ( res . getData ( ) , InventoryCusPrice . class ) ;
assert inventoryCusPrices ! = null ;
for ( InventoryCusPrice cusPrice : inventoryCusPrices ) {
for ( GoodsSku sku : skus ) {
if ( sku . getSkuCode ( ) . equals ( cusPrice . getInvCode ( ) ) ) {
sku . setSalesPrice ( cusPrice . getPrice ( ) ) ;
break ;
}
}
}
}
}
}
@Override
@Transactional ( rollbackFor = Exception . class )
public void editSku ( GoodsSkuBo goodSkuVo ) {