diff --git a/src/main/java/com/qs/serve/common/config/properties/ProjectApisProperties.java b/src/main/java/com/qs/serve/common/config/properties/ProjectApisProperties.java index 1dc50666..0568e806 100644 --- a/src/main/java/com/qs/serve/common/config/properties/ProjectApisProperties.java +++ b/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; + } diff --git a/src/main/java/com/qs/serve/modules/goods/common/GoodsConst.java b/src/main/java/com/qs/serve/modules/goods/common/GoodsConst.java index b8cca768..a386b785 100644 --- a/src/main/java/com/qs/serve/modules/goods/common/GoodsConst.java +++ b/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"; } diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java index 559805e5..207e0f7b 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java +++ b/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> shelfPageToSku(GoodsSpu param){ + PageVo result = this.getShelfPage(param).getData(); + List goodsSpuList = result.getList(); + List spuCodes = goodsSpuList.stream().map(GoodsSpu::getSpuCode).collect(Collectors.toList()); + List 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 用于加载模板选中的商品 diff --git a/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java b/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java index b0471043..718e910e 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java +++ b/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 selectCateIds; + @TableField(exist = false) + private BigDecimal skuPrice; } diff --git a/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java b/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java index 34a02acb..6226c3d1 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/GoodsSpuService.java +++ b/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 { GoodSkuBatchResult editTasteBo(GoodsSpuTasteBo tasteProduct); + List getSpuToSkuInfo(String book, List skuCodes); + } diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java index 4b8f4f11..cc9c524e 100644 --- a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java +++ b/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 im private GoodsSkuSpecValueService goodsSkuSpecValueService; private GoodsCategoryService goodsCategoryService; private BmsFactoryService bmsFactoryService; + private ProjectApisProperties projectApisProperties; @Override public List selectSpuList(GoodsSpu goodsSpu) { @@ -246,6 +253,21 @@ public class GoodsSpuServiceImpl extends ServiceImpl im return skuBatchResult; } + /** + * 根据账套,获取spu对应的sku + * @param book 账套 + * @param skuCodes 嘉士利的SKU-CODE + * @return 嘉士利的invCode + */ + @Override + public List getSpuToSkuInfo(String book, List skuCodes){ + Map 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 diff --git a/src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrderItem.java b/src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrderItem.java index 3da438b7..6b037fc9 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/OmsXltOrderItem.java +++ b/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") diff --git a/src/main/java/com/qs/serve/modules/oms/entity/dto/OmsSpuToSkuKey.java b/src/main/java/com/qs/serve/modules/oms/entity/dto/OmsSpuToSkuKey.java index 2586a7b0..aa4f323b 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/dto/OmsSpuToSkuKey.java +++ b/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; } diff --git a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java index 4612a5b6..401de0b8 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java +++ b/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 im order.setUrgentFlag(param.getUrgentFlag()); order.setRemark(param.getRemark()); + //通过当前函数获取当前账套对于的skuID,默认全部转化为开平(001)的sku + List spuIds = param.getOrderItems().stream().map(OmsOrderModifyParam.OmsOrderItemModifyBo::getSpuId).collect(Collectors.toList()); + List spuList = goodsSpuService.listByIds(spuIds); + Map goodsSpuMap = new HashMap<>(spuList.size()); + for (GoodsSpu goodsSpu : spuList) { + goodsSpuMap.put(goodsSpu.getId(),goodsSpu); + } + List spuCodeList = spuList.stream().map(GoodsSpu::getSpuCode).collect(Collectors.toList()); + List spuToSkuKeys = goodsSpuService.getSpuToSkuInfo(GoodsConst.DEFAULT_BOOK,spuCodeList); + Map spuGetSkuMap = new HashMap<>(spuToSkuKeys.size()); + for (OmsSpuToSkuKey toSkuKey : spuToSkuKeys) { + spuGetSkuMap.put(toSkuKey.getSpuCode(),toSkuKey.getSkuCode()); + } + //构建新的item List newOrderItemList = new ArrayList<>(); List orderModifyItems = param.getOrderItems(); @@ -221,7 +237,10 @@ public class OmsOrderServiceImpl extends ServiceImpl 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 im List orderItemList = omsOrderItemService.list(iteLqw); - List spuIds = orderItemList.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList()); + //List spuIds = orderItemList.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList()); - //通过当前函数获取当前账套对于的skuID,默认全部转化为开平的sku - List 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 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 im offerOrder.setMakerName(sysUser.getName()); } - - /** - * TODO: 根据账套,获取spuId对应的skuId - * @param book 账套 - * @param spuIds 嘉士利的SKU-CODE - * @return 嘉士利的invCode - */ - public List getSpuToSkuInfo(String book, List spuIds){ - //TODO 测试数据 - List 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; - } - } diff --git a/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetVo.java b/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetVo.java index 8cae2993..e8555a26 100644 --- a/src/main/java/com/qs/serve/modules/tbs/entity/vo/TbsBudgetVo.java +++ b/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; } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java index 3cd6bbad..4cc3cdff 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetMatchApplication.java @@ -81,13 +81,8 @@ public class TbsBudgetMatchApplication { //加载所有预算 allBudgetIds.add(0L); -// LambdaQueryWrapper budgetTemplateFlagLqw = new LambdaQueryWrapper<>(); -// budgetTemplateFlagLqw.eq(TbsBudget::getTemplateFlag,1); -// budgetTemplateFlagLqw.in(TbsBudget::getId,allBudgetIds); -// budgetTemplateFlagLqw.apply(" length(template_ids)>0 "); -// List budgetTemplateFlagList = budgetMapper.selectList(budgetTemplateFlagLqw); List allBudgetList = budgetMapper.selectBatchIds(allBudgetIds); - Map allBudgetMap = new HashMap<>(); + Map allBudgetMap = new HashMap<>(allBudgetList.size()); for (TbsBudget budget : allBudgetList) { allBudgetMap.put(budget.getId(),budget); } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java index 69fb6d22..35d61418 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetServiceImpl.java +++ b/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 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 budgetVo.setBudgetCheckState(TbsBudgetCheckState.State_1_apply); } } + + budgetVo.setTemplateFlag(budget.getTemplateFlag()); + if(budget.getTemplateFlag().equals(1)&&budget.getTemplateIds()!=null&&budget.getTemplateIds().length>0){ + List templates = tbsActivityTemplateMapper.selectBatchIds(Arrays.asList(budget.getTemplateIds())); + budgetVo.setTemplateList(templates); + } + return budgetVo; }