Browse Source

sku导入

v1.0
Yen 2 years ago
parent
commit
31bd3cc97d
  1. 86
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java
  2. 12
      src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSkuImportBo.java
  3. 2
      src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java
  4. 18
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java

86
src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java

@ -9,12 +9,14 @@ import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.modules.goods.entity.GoodsSkuSpecValue;
import com.qs.serve.modules.goods.entity.GoodsSpu;
import com.qs.serve.modules.goods.entity.bo.GoodsSkuBo;
import com.qs.serve.modules.goods.entity.bo.GoodsSkuImportBo;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuImportBo;
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.GoodsSpuService;
import com.qs.serve.modules.sale.entity.SalePlanGoods;
import com.qs.serve.modules.sale.service.SalePlanGoodsService;
import com.qs.serve.modules.tbs.common.TbsGoodsType;
@ -33,6 +35,7 @@ import com.qs.serve.modules.goods.entity.GoodsSku;
import com.qs.serve.modules.goods.service.GoodsSkuService;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Random;
@ -50,6 +53,7 @@ import java.util.stream.Collectors;
public class GoodsSkuController {
private GoodsSkuService goodsSkuService;
private GoodsSpuService goodsSpuService;
private GoodsSkuSpecValueService goodsSkuSpecValueService;
private TbsActivityGoodsService activityGoodsService;
private TbsBudgetConditionService budgetConditionService;
@ -219,21 +223,21 @@ public class GoodsSkuController {
for (TbsActivityGoods item : activityGoodsList) {
for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) {
if(item.getTargetCode().equals(skuItem.getSkuCode())&&DELETE.equals(skuItem.getOpt())){
skuItem.setErrMsg(skuItem.getErrMsg()==null?"活动含有当前商品,删除失败;":skuItem.getErrMsg()+"活动含有当前商品,删除失败;");
skuItem.setErrMsg(skuItem.getErrMsg()==null?"活动含有当前商品,删除失败;":skuItem.getErrMsg()+"\n活动含有当前商品,删除失败;");
}
}
}
for (TbsBudgetCondition item : budgetConditionList) {
for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) {
if(item.getTargetCode().equals(skuItem.getSkuCode())&&DELETE.equals(skuItem.getOpt())){
skuItem.setErrMsg(skuItem.getErrMsg()==null?"预算含有当前商品,删除失败;":skuItem.getErrMsg()+"预算含有当前商品,删除失败;");
skuItem.setErrMsg(skuItem.getErrMsg()==null?"预算含有当前商品,删除失败;":skuItem.getErrMsg()+"\n预算含有当前商品,删除失败;");
}
}
}
for (SalePlanGoods item : salePlanGoodsList) {
for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) {
if(item.getTargetCode().equals(skuItem.getSkuCode())&&DELETE.equals(skuItem.getOpt())){
skuItem.setErrMsg(skuItem.getErrMsg()==null?"销售计划含有当前商品,删除失败;":skuItem.getErrMsg()+"销售计划含有当前商品,删除失败;");
skuItem.setErrMsg(skuItem.getErrMsg()==null?"销售计划含有当前商品,删除失败;":skuItem.getErrMsg()+"\n销售计划含有当前商品,删除失败;");
}
}
}
@ -249,18 +253,86 @@ public class GoodsSkuController {
}
//处理更新和新增
List<String> skuCodes = param.getSkuList().stream().map(a->a.getSkuCode()).distinct().collect(Collectors.toList());
List<String> spuCodes = param.getSkuList().stream().map(a->a.getSpuCode()).distinct().collect(Collectors.toList());
List<GoodsSku> skuList = goodsSkuService.getByCodes(skuCodes);
List<GoodsSpu> spuList = goodsSpuService.getByCodes(spuCodes);
for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) {
String opt = skuItem.getOpt();
if(opt.equals(DELETE)){
continue;
}
GoodsSku sku = this.selectSku(skuList,skuItem.getSkuCode());
GoodsSpu spu = this.selectSpu(spuList,skuItem.getSpuCode());
if(UPDATE.equals(opt)){
//TODO 更新
//更新
if(sku==null){
skuItem.setErrMsg(skuItem.getErrMsg()==null?"无匹配编码产品,更新失败;":skuItem.getErrMsg()+"\n无匹配编码产品,更新失败;");
continue;
}
GoodsSku goodsSku = buildByImportItem(skuItem);
goodsSku.setId(sku.getId());
if(spu!=null){
goodsSku.setSpuId(spu.getId());
}
goodsSkuService.updateById(goodsSku);
}else if (SAVE.equals(opt)){
//TODO 更新
//保存
if(sku!=null){
skuItem.setErrMsg(skuItem.getErrMsg()==null?"已保存,新增失败;":skuItem.getErrMsg()+"\n已保存,新增失败;");
continue;
}
if(spu!=null){
skuItem.setErrMsg(skuItem.getErrMsg()==null?"SKU不存在,新增失败;":skuItem.getErrMsg()+"\nSKU不存在,新增失败;");
continue;
}
GoodsSku addSku = buildByImportItem(skuItem);
addSku.setSpuId(spu.getId());
goodsSkuService.save(addSku);
}
}
return R.ok(param);
}
private GoodsSku buildByImportItem(GoodsSkuImportBo.SkuItem skuItem){
GoodsSku udpSku = new GoodsSku();
udpSku.setSkuCode(skuItem.getSkuCode());
udpSku.setSkuName(skuItem.getSkuName());
udpSku.setSalesPrice(skuItem.getSalesPrice());
udpSku.setMarketPrice(skuItem.getSalesPrice());
udpSku.setCostPrice(skuItem.getSalesPrice());
udpSku.setStock(skuItem.getStock());
udpSku.setWeight(skuItem.getWeight());
udpSku.setVolume(skuItem.getVolume());
udpSku.setMinPurchase(skuItem.getMinPurchase());
udpSku.setOrderFlag(skuItem.getOrderFlag());
udpSku.setSpecialFlag(skuItem.getSpecialFlag());
udpSku.setCostFlag(skuItem.getCostFlag());
udpSku.setBelong(skuItem.getBelong());
udpSku.setWrapVal(skuItem.getWrapVal());
udpSku.setTasteVal(skuItem.getTasteVal());
udpSku.setSpecInfos(skuItem.getBelong()+";"+skuItem.getTasteVal()+";"+skuItem.getWrapVal());
udpSku.setRemark(skuItem.getRemark());
return udpSku;
}
private GoodsSku selectSku( List<GoodsSku> skuList, String skuCode){
for (GoodsSku goodsSku : skuList) {
if(goodsSku.getSkuCode().equals(skuCode)){
return goodsSku;
}
}
return null;
}
private GoodsSpu selectSpu( List<GoodsSpu> spuList, String skuCode){
for (GoodsSpu goodsSpu : spuList) {
if(goodsSpu.getSkuCode().equals(skuCode)){
return goodsSpu;
}
}
return null;
}
}

12
src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSkuImportBo.java

@ -32,12 +32,15 @@ public class GoodsSkuImportBo {
@NotNull
private String skuCode;
/** 商品名字 */
/** 商品名字(新增时不能为空) */
private String skuName;
/** 库存 */
private Integer stock;
/** 销售价格(元) */
private BigDecimal salesPrice;
/** 重量(kg) */
private BigDecimal weight;
@ -53,6 +56,9 @@ public class GoodsSkuImportBo {
/** 是否特殊品 1、是;0否 */
private Integer specialFlag;
/** 是否特殊品 1、是;0否 */
private Integer costFlag;
/** 产地 */
private String belong;
@ -62,8 +68,8 @@ public class GoodsSkuImportBo {
/** 口味 */
private String tasteVal;
/** 销售价格 */
private BigDecimal salesPrice;
/** 备注 */
private String remark;
private String errMsg;
}

2
src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java

@ -30,6 +30,8 @@ public interface GoodsSpuService extends IService<GoodsSpu> {
GoodsSpu getByCode(String code);
List<GoodsSpu> getByCodes(List<String> codes);
GoodsSpu getByName(String name);
List<GoodSkuBatchResult> saveBatchTasteSpu(GoodsSpuBatchTasteBo batchTasteBo);

18
src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java

@ -4,10 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.config.properties.ProjectApisProperties;
import com.qs.serve.common.model.dto.RowParam;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.HttpUtil;
import com.qs.serve.common.util.JsonUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.common.util.*;
import com.qs.serve.modules.bms.entity.BmsFactory;
import com.qs.serve.modules.bms.service.BmsFactoryService;
import com.qs.serve.modules.goods.entity.*;
@ -71,6 +68,19 @@ public class GoodsSpuServiceImpl extends ServiceImpl<GoodsSpuMapper,GoodsSpu> im
return getOne(lqw,false);
}
@Override
public List<GoodsSpu> getByCodes(List<String> codes) {
if(codes==null){
codes = new ArrayList<>();
}
if(CollectionUtil.isEmpty(codes)){
codes.add("-1");
}
LambdaQueryWrapper<GoodsSpu> lqw = new LambdaQueryWrapper<>();
lqw.in(GoodsSpu::getSpuCode,codes);
return list(lqw);
}
@Override
public GoodsSpu getByName(String name) {
LambdaQueryWrapper<GoodsSpu> lqw = new LambdaQueryWrapper<>();

Loading…
Cancel
Save