|
|
@ -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; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|