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.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.PageUtil;
import com.qs.serve.modules.goods.entity.GoodsSkuSpecValue; 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.GoodsSkuBo;
import com.qs.serve.modules.goods.entity.bo.GoodsSkuImportBo; 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.bo.GoodsSpuImportBo;
import com.qs.serve.modules.goods.entity.vo.GoodSkuVo; import com.qs.serve.modules.goods.entity.vo.GoodSkuVo;
import com.qs.serve.modules.goods.entity.vo.GoodsSkuSpecValueVo; import com.qs.serve.modules.goods.entity.vo.GoodsSkuSpecValueVo;
import com.qs.serve.modules.goods.service.GoodsSkuSpecValueService; 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.entity.SalePlanGoods;
import com.qs.serve.modules.sale.service.SalePlanGoodsService; import com.qs.serve.modules.sale.service.SalePlanGoodsService;
import com.qs.serve.modules.tbs.common.TbsGoodsType; 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 com.qs.serve.modules.goods.service.GoodsSkuService;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Random; import java.util.Random;
@ -50,6 +53,7 @@ import java.util.stream.Collectors;
public class GoodsSkuController { public class GoodsSkuController {
private GoodsSkuService goodsSkuService; private GoodsSkuService goodsSkuService;
private GoodsSpuService goodsSpuService;
private GoodsSkuSpecValueService goodsSkuSpecValueService; private GoodsSkuSpecValueService goodsSkuSpecValueService;
private TbsActivityGoodsService activityGoodsService; private TbsActivityGoodsService activityGoodsService;
private TbsBudgetConditionService budgetConditionService; private TbsBudgetConditionService budgetConditionService;
@ -219,21 +223,21 @@ public class GoodsSkuController {
for (TbsActivityGoods item : activityGoodsList) { for (TbsActivityGoods item : activityGoodsList) {
for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) { for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) {
if(item.getTargetCode().equals(skuItem.getSkuCode())&&DELETE.equals(skuItem.getOpt())){ 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 (TbsBudgetCondition item : budgetConditionList) {
for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) { for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) {
if(item.getTargetCode().equals(skuItem.getSkuCode())&&DELETE.equals(skuItem.getOpt())){ 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 (SalePlanGoods item : salePlanGoodsList) {
for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) { for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) {
if(item.getTargetCode().equals(skuItem.getSkuCode())&&DELETE.equals(skuItem.getOpt())){ 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()) { for (GoodsSkuImportBo.SkuItem skuItem : param.getSkuList()) {
String opt = skuItem.getOpt(); 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)){ 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)){ }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); 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 @NotNull
private String skuCode; private String skuCode;
/** 商品名字 */ /** 商品名字(新增时不能为空) */
private String skuName; private String skuName;
/** 库存 */ /** 库存 */
private Integer stock; private Integer stock;
/** 销售价格(元) */
private BigDecimal salesPrice;
/** 重量(kg) */ /** 重量(kg) */
private BigDecimal weight; private BigDecimal weight;
@ -53,6 +56,9 @@ public class GoodsSkuImportBo {
/** 是否特殊品 1、是;0否 */ /** 是否特殊品 1、是;0否 */
private Integer specialFlag; private Integer specialFlag;
/** 是否特殊品 1、是;0否 */
private Integer costFlag;
/** 产地 */ /** 产地 */
private String belong; private String belong;
@ -62,8 +68,8 @@ public class GoodsSkuImportBo {
/** 口味 */ /** 口味 */
private String tasteVal; private String tasteVal;
/** 销售价格 */ /** 备注 */
private BigDecimal salesPrice; private String remark;
private String errMsg; 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); GoodsSpu getByCode(String code);
List<GoodsSpu> getByCodes(List<String> codes);
GoodsSpu getByName(String name); GoodsSpu getByName(String name);
List<GoodSkuBatchResult> saveBatchTasteSpu(GoodsSpuBatchTasteBo batchTasteBo); 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.config.properties.ProjectApisProperties; import com.qs.serve.common.config.properties.ProjectApisProperties;
import com.qs.serve.common.model.dto.RowParam; import com.qs.serve.common.model.dto.RowParam;
import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.*;
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.modules.bms.entity.BmsFactory; import com.qs.serve.modules.bms.entity.BmsFactory;
import com.qs.serve.modules.bms.service.BmsFactoryService; import com.qs.serve.modules.bms.service.BmsFactoryService;
import com.qs.serve.modules.goods.entity.*; import com.qs.serve.modules.goods.entity.*;
@ -71,6 +68,19 @@ public class GoodsSpuServiceImpl extends ServiceImpl<GoodsSpuMapper,GoodsSpu> im
return getOne(lqw,false); 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 @Override
public GoodsSpu getByName(String name) { public GoodsSpu getByName(String name) {
LambdaQueryWrapper<GoodsSpu> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<GoodsSpu> lqw = new LambdaQueryWrapper<>();

Loading…
Cancel
Save