Browse Source

添加预算指定活动模板;添加spu转sku

v1.0
Yen 2 years ago
parent
commit
4d37333d39
  1. 3
      src/main/java/com/qs/serve/common/config/properties/ProjectApisProperties.java
  2. 2
      src/main/java/com/qs/serve/modules/goods/common/GoodsConst.java
  3. 27
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java
  4. 2
      src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java
  5. 3
      src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java
  6. 22
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java
  7. 2
      src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrderItem.java
  8. 4
      src/main/java/com/qs/serve/modules/oms/entity/dto/OmsSpuToSkuKey.java
  9. 85
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java
  10. 5
      src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetVo.java
  11. 7
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java
  12. 9
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java

3
src/main/java/com/qs/serve/common/config/properties/ProjectApisProperties.java

@ -21,4 +21,7 @@ public class ProjectApisProperties {
/** 调度系统-发货单 */
private String diaoduPlanOrder;
/** 嘉士利接口,spu转换sku */
private String spuToSku;
}

2
src/main/java/com/qs/serve/modules/goods/common/GoodsConst.java

@ -11,5 +11,7 @@ public class GoodsConst {
*/
public static final Integer SPEC_COUNT = 3;
public static final Integer CATE_MAX_LEVEL = 3;
//默认账套,开平
public static String DEFAULT_BOOK = "001";
}

27
src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java

@ -11,6 +11,7 @@ import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.StringUtils;
import com.qs.serve.common.util.ValidateTools;
import com.qs.serve.modules.goods.common.GoodsConst;
import com.qs.serve.modules.goods.entity.*;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuBatchTasteBo;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuBo;
@ -18,6 +19,7 @@ import com.qs.serve.modules.goods.entity.bo.GoodsSpuEditBo;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuTasteBo;
import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo;
import com.qs.serve.modules.goods.service.*;
import com.qs.serve.modules.oms.entity.dto.OmsSpuToSkuKey;
import com.qs.serve.modules.tbs.common.TbsGoodsType;
import com.qs.serve.modules.tbs.entity.TbsActivityGoods;
import com.qs.serve.modules.tbs.service.TbsActivityGoodsService;
@ -31,6 +33,7 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
import java.util.Locale;
import java.util.stream.Collectors;
/**
* 商品 spu
@ -74,6 +77,30 @@ public class GoodsSpuController {
return this.getPage(param);
}
/**
* 翻页搜索(组件接口),拓展SKU数据
* @param param
* @return
*/
@GetMapping("/shelfPageToSku")
public R<PageVo<GoodsSpu>> shelfPageToSku(GoodsSpu param){
PageVo<GoodsSpu> result = this.getShelfPage(param).getData();
List<GoodsSpu> goodsSpuList = result.getList();
List<String> spuCodes = goodsSpuList.stream().map(GoodsSpu::getSpuCode).collect(Collectors.toList());
List<OmsSpuToSkuKey> toSkuKeys = goodsSpuService.getSpuToSkuInfo(GoodsConst.DEFAULT_BOOK,spuCodes);
for (GoodsSpu spu : goodsSpuList) {
for (OmsSpuToSkuKey skuKey : toSkuKeys) {
if(spu.getSpuCode().equals(skuKey.getSpuCode())){
GoodsSku goodsSku = goodsSkuService.getByCode(skuKey.getSkuCode());
spu.setSkuPrice(goodsSku.getSalesPrice());
break;
}
}
}
result.setList(goodsSpuList);
return R.ok(result);
}
/**
* 翻页搜索(组件接口)
* @apiNote 用于加载模板选中的商品

2
src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java

@ -144,5 +144,7 @@ public class GoodsSpu implements Serializable {
@TableField(exist = false)
private List<Long> selectCateIds;
@TableField(exist = false)
private BigDecimal skuPrice;
}

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

@ -8,6 +8,7 @@ import com.qs.serve.modules.goods.entity.bo.GoodsSpuEditBo;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuTasteBo;
import com.qs.serve.modules.goods.entity.vo.GoodSkuBatchResult;
import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo;
import com.qs.serve.modules.oms.entity.dto.OmsSpuToSkuKey;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -35,5 +36,7 @@ public interface GoodsSpuService extends IService<GoodsSpu> {
GoodSkuBatchResult editTasteBo(GoodsSpuTasteBo tasteProduct);
List<OmsSpuToSkuKey> getSpuToSkuInfo(String book, List<String> skuCodes);
}

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

@ -2,7 +2,10 @@ 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.config.properties.ProjectApisProperties;
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.modules.bms.entity.BmsFactory;
import com.qs.serve.modules.bms.service.BmsFactoryService;
@ -13,6 +16,7 @@ import com.qs.serve.modules.goods.entity.bo.GoodsSpuEditBo;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuTasteBo;
import com.qs.serve.modules.goods.entity.vo.*;
import com.qs.serve.modules.goods.service.*;
import com.qs.serve.modules.oms.entity.dto.OmsSpuToSkuKey;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -20,7 +24,9 @@ import com.qs.serve.modules.goods.mapper.GoodsSpuMapper;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* spu 服务实现类
@ -39,6 +45,7 @@ public class GoodsSpuServiceImpl extends ServiceImpl<GoodsSpuMapper,GoodsSpu> im
private GoodsSkuSpecValueService goodsSkuSpecValueService;
private GoodsCategoryService goodsCategoryService;
private BmsFactoryService bmsFactoryService;
private ProjectApisProperties projectApisProperties;
@Override
public List<GoodsSpu> selectSpuList(GoodsSpu goodsSpu) {
@ -246,6 +253,21 @@ public class GoodsSpuServiceImpl extends ServiceImpl<GoodsSpuMapper,GoodsSpu> im
return skuBatchResult;
}
/**
* 根据账套获取spu对应的sku
* @param book 账套
* @param skuCodes 嘉士利的SKU-CODE
* @return 嘉士利的invCode
*/
@Override
public List<OmsSpuToSkuKey> getSpuToSkuInfo(String book, List<String> skuCodes){
Map<String,Object> params = new HashMap<>();
params.put("book",book);
params.put("skuCode",skuCodes);
String apiUrl = projectApisProperties.getSpuToSku();
String response = HttpUtil.doPost(apiUrl, JsonUtil.objectToJson(params),null);
return JsonUtil.jsonToList(response,OmsSpuToSkuKey.class);
}
/**
* 关联上下级
* @param spu

2
src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrderItem.java

@ -37,6 +37,8 @@ public class OmsXltOrderItem implements Serializable {
@TableField("dingDanID")
private String dingDanID;
private String spuCode;
/** 产品编号 */
@Length(max = 100,message = "产品编号长度不能超过100字")
@TableField("chanPinBianHao")

4
src/main/java/com/qs/serve/modules/oms/entity/dto/OmsSpuToSkuKey.java

@ -9,8 +9,8 @@ import lombok.Data;
@Data
public class OmsSpuToSkuKey {
private Long spuId;
private String spuCode;
private Long skuId;
private String skuCode;
}

85
src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java

@ -2,6 +2,7 @@ package com.qs.serve.modules.oms.service.impl;
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.util.*;
import com.qs.serve.modules.bms.entity.BmsRegion;
import com.qs.serve.modules.bms.entity.BmsSupplier;
@ -9,6 +10,7 @@ import com.qs.serve.modules.bms.entity.BmsSupplierAddress;
import com.qs.serve.modules.bms.mapper.BmsRegionMapper;
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import com.qs.serve.modules.bms.service.BmsSupplierAddressService;
import com.qs.serve.modules.goods.common.GoodsConst;
import com.qs.serve.modules.goods.entity.GoodsCategoryRule;
import com.qs.serve.modules.goods.entity.GoodsSku;
import com.qs.serve.modules.goods.entity.GoodsSpu;
@ -209,6 +211,20 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
order.setUrgentFlag(param.getUrgentFlag());
order.setRemark(param.getRemark());
//通过当前函数获取当前账套对于的skuID,默认全部转化为开平(001)的sku
List<Long> spuIds = param.getOrderItems().stream().map(OmsOrderModifyParam.OmsOrderItemModifyBo::getSpuId).collect(Collectors.toList());
List<GoodsSpu> spuList = goodsSpuService.listByIds(spuIds);
Map<Long,GoodsSpu> goodsSpuMap = new HashMap<>(spuList.size());
for (GoodsSpu goodsSpu : spuList) {
goodsSpuMap.put(goodsSpu.getId(),goodsSpu);
}
List<String> spuCodeList = spuList.stream().map(GoodsSpu::getSpuCode).collect(Collectors.toList());
List<OmsSpuToSkuKey> spuToSkuKeys = goodsSpuService.getSpuToSkuInfo(GoodsConst.DEFAULT_BOOK,spuCodeList);
Map<String,String> spuGetSkuMap = new HashMap<>(spuToSkuKeys.size());
for (OmsSpuToSkuKey toSkuKey : spuToSkuKeys) {
spuGetSkuMap.put(toSkuKey.getSpuCode(),toSkuKey.getSkuCode());
}
//构建新的item
List<OmsOrderItem> newOrderItemList = new ArrayList<>();
List<OmsOrderModifyParam.OmsOrderItemModifyBo> orderModifyItems = param.getOrderItems();
@ -221,7 +237,10 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
goodsSpu = goodsSpuService.getById(goodsSku.getSpuId());
}else {
//PC下单
goodsSpu = goodsSpuService.getById(modifyItem.getSpuId());
//goodsSpu = goodsSpuService.getById(modifyItem.getSpuId());
goodsSpu = goodsSpuMap.get(modifyItem.getSpuId());
String skuCode = spuGetSkuMap.get(goodsSpu.getSpuCode());
goodsSku = goodsSkuService.getByCode(skuCode);
}
OmsOrderItem orderItem = new OmsOrderItem();
orderItem.setOrderId(order.getId());
@ -401,36 +420,11 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
List<OmsOrderItem> orderItemList = omsOrderItemService.list(iteLqw);
List<Long> spuIds = orderItemList.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList());
//List<Long> spuIds = orderItemList.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList());
//通过当前函数获取当前账套对于的skuID,默认全部转化为开平的sku
List<OmsSpuToSkuKey> spuToSkuKeys = this.getSpuToSkuInfo("001",spuIds);
for (OmsOrderItem orderItem : orderItemList) {
if( orderItem.getSkuId()!=null && !orderItem.getSkuId().equals(0L) ){
continue;
}
//设置订单的sku信息
GoodsSku goodsSku = null;
for (OmsSpuToSkuKey toSkuKey : spuToSkuKeys) {
if(orderItem.getSpuId().equals(toSkuKey.getSpuId())){
goodsSku = goodsSkuService.getById(toSkuKey.getSkuId());
break;
}
}
if(goodsSku==null){
Assert.throwEx("未能匹配当前账号的产品信息:"+orderItem.getSpuCode());
}else {
orderItem.setSkuId(goodsSku.getId());
orderItem.setSkuCode(goodsSku.getSkuCode());
orderItem.setSpecValues(goodsSku.getSpecInfos());
orderItem.setSalesPrice(goodsSku.getSalesPrice());
orderItem.setSalesPrice(goodsSku.getSalesPrice());
orderItem.setMarketPrice(goodsSku.getSalesPrice());
}
}
//更新设置sku后的信息
omsOrderItemService.updateBatchById(orderItemList);
//omsOrderItemService.updateBatchById(orderItemList);
//直接调用U8接口生成
//SysUser sysUser = sysUserService.getById(userId);
@ -483,6 +477,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
for (OmsOrderItem orderItem : orderItemList) {
OmsXltOrderItem xltOrderItem = new OmsXltOrderItem();
xltOrderItem.setDingDanID(xltOrder.getId());
xltOrderItem.setSpuCode(orderItem.getSpuCode());
xltOrderItem.setChanPinBianHao(orderItem.getSkuCode());
xltOrderItem.setChanPinDanWei(orderItem.getSkuUnit());
xltOrderItem.setDingHuoShuLiang(orderItem.getQuantity());
@ -538,39 +533,5 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
offerOrder.setMakerName(sysUser.getName());
}
/**
* TODO: 根据账套获取spuId对应的skuId
* @param book 账套
* @param spuIds 嘉士利的SKU-CODE
* @return 嘉士利的invCode
*/
public List<OmsSpuToSkuKey> getSpuToSkuInfo(String book, List<Long> spuIds){
//TODO 测试数据
List<OmsSpuToSkuKey> rs = new ArrayList<>();
Long[] skuIds = {2315912284L,
2315912286L,
2315912287L,
2315912288L,
2315912289L,
2315912290L,
2315912291L,
2315912292L,
2315912293L,
2315912294L,
2315912295L,
2315912296L,
2315912297L,
2315912298L,
2315912300L,};
for (int i = 0; i < spuIds.size(); i++) {
OmsSpuToSkuKey skuKey = new OmsSpuToSkuKey();
skuKey.setSpuId(spuIds.get(i));
skuKey.setSkuId(skuIds[i]);
rs.add(skuKey);
}
return rs;
}
}

5
src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetVo.java

@ -174,5 +174,10 @@ public class TbsBudgetVo implements Serializable {
/** 变更列表 */
private List<?> changeList;
/** 是否指定模板类型的预算 */
private Integer templateFlag;
/** 模板列表 */
private List<?> templateList;
}

7
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java

@ -81,13 +81,8 @@ public class TbsBudgetMatchApplication {
//加载所有预算
allBudgetIds.add(0L);
// LambdaQueryWrapper<TbsBudget> budgetTemplateFlagLqw = new LambdaQueryWrapper<>();
// budgetTemplateFlagLqw.eq(TbsBudget::getTemplateFlag,1);
// budgetTemplateFlagLqw.in(TbsBudget::getId,allBudgetIds);
// budgetTemplateFlagLqw.apply(" length(template_ids)>0 ");
// List<TbsBudget> budgetTemplateFlagList = budgetMapper.selectList(budgetTemplateFlagLqw);
List<TbsBudget> allBudgetList = budgetMapper.selectBatchIds(allBudgetIds);
Map<Long,TbsBudget> allBudgetMap = new HashMap<>();
Map<Long,TbsBudget> allBudgetMap = new HashMap<>(allBudgetList.size());
for (TbsBudget budget : allBudgetList) {
allBudgetMap.put(budget.getId(),budget);
}

9
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java

@ -35,6 +35,7 @@ import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil;
import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.bo.*;
import com.qs.serve.modules.tbs.entity.vo.TbsBudgetVo;
import com.qs.serve.modules.tbs.mapper.TbsActivityTemplateMapper;
import com.qs.serve.modules.tbs.mapper.TbsBudgetChangeMapper;
import com.qs.serve.modules.tbs.mapper.TbsBudgetMapper;
import com.qs.serve.modules.tbs.service.*;
@ -83,6 +84,7 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
private final TzcPolicyItemService tzcPolicyItemService;
private final TbsBudgetCostItemPolicyService tbsBudgetCostItemPolicyService;
private final VtbFundFlowService vtbFundFlowService;
private final TbsActivityTemplateMapper tbsActivityTemplateMapper;
private SysAttachService attachService;
private SeeYonRequestService seeYonService;
@ -581,6 +583,13 @@ public class TbsBudgetServiceImpl extends ServiceImpl<TbsBudgetMapper,TbsBudget>
budgetVo.setBudgetCheckState(TbsBudgetCheckState.State_1_apply);
}
}
budgetVo.setTemplateFlag(budget.getTemplateFlag());
if(budget.getTemplateFlag().equals(1)&&budget.getTemplateIds()!=null&&budget.getTemplateIds().length>0){
List<TbsActivityTemplate> templates = tbsActivityTemplateMapper.selectBatchIds(Arrays.asList(budget.getTemplateIds()));
budgetVo.setTemplateList(templates);
}
return budgetVo;
}

Loading…
Cancel
Save