Browse Source

feat: sku标签支持

muti_db
Yen 3 months ago
parent
commit
2e619da422
  1. 11
      src/main/java/com/qs/serve/common/model/tag/TagFiledUtil.java
  2. 22
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java
  3. 46
      src/main/java/com/qs/serve/modules/goods/controller/api/GoodsImminentBatchApi.java
  4. 11
      src/main/java/com/qs/serve/modules/goods/entity/GoodsSpu.java
  5. 4
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java
  6. 2
      src/main/java/com/qs/serve/modules/tag/TagTypeConst.java
  7. 8
      src/main/java/com/qs/serve/modules/tag/controller/TagDataController.java
  8. 2
      src/main/java/com/qs/serve/modules/tag/entity/TagData.java
  9. 2
      src/main/java/com/qs/serve/modules/tag/entity/TagInfo.java
  10. 2
      src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoBind2Bo.java
  11. 1
      src/main/resources/mapper/goods/GoodsSpuMapper.xml

11
src/main/java/com/qs/serve/common/model/tag/TagFiledUtil.java

@ -3,6 +3,7 @@ package com.qs.serve.common.model.tag;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.qs.serve.common.util.StringUtils; import com.qs.serve.common.util.StringUtils;
import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.goods.entity.GoodsSpu;
import com.qs.serve.modules.his.entity.HisUserSupplier; import com.qs.serve.modules.his.entity.HisUserSupplier;
import com.qs.serve.modules.tag.entity.so.TagQuery; import com.qs.serve.modules.tag.entity.so.TagQuery;
import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.tbs.entity.TbsCostApply;
@ -43,6 +44,10 @@ public class TagFiledUtil {
put("id","his_user_supplier.supplier_id"); put("id","his_user_supplier.supplier_id");
}}; }};
public final static Map<String,String> goodsSpuPageMap = new HashMap<String,String>(){{
put("id","goods_spu.id");
}};
public static void TbsCostApplyPage(TbsCostApply param){ public static void TbsCostApplyPage(TbsCostApply param){
List<TagQuery> paramTagList = param.getTagQueryList(); List<TagQuery> paramTagList = param.getTagQueryList();
List<TagQuery> newList = getNewList(paramTagList,TbsCostApplyPageMap); List<TagQuery> newList = getNewList(paramTagList,TbsCostApplyPageMap);
@ -69,6 +74,12 @@ public class TagFiledUtil {
param.setTagQueryList(newList); param.setTagQueryList(newList);
} }
public static void GoodsSpuPage(GoodsSpu param){
List<TagQuery> paramTagList = param.getTagQueryList();
List<TagQuery> newList = getNewList(paramTagList,goodsSpuPageMap);
param.setTagQueryList(newList);
}
public static void HisSupplierPage(HisUserSupplier param){ public static void HisSupplierPage(HisUserSupplier param){
List<TagQuery> paramTagList = param.getTagQueryList(); List<TagQuery> paramTagList = param.getTagQueryList();
List<TagQuery> newList = getNewList(paramTagList,HisSupplierPageMap); List<TagQuery> newList = getNewList(paramTagList,HisSupplierPageMap);

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

@ -4,12 +4,14 @@ import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.github.pagehelper.PageHelper;
import com.qs.serve.common.config.DevEnvironmentConfig; import com.qs.serve.common.config.DevEnvironmentConfig;
import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType; 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.model.tag.TagFiledUtil;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
import com.qs.serve.modules.bms.common.BookAccountUtil; import com.qs.serve.modules.bms.common.BookAccountUtil;
import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplier;
@ -28,6 +30,7 @@ import com.qs.serve.modules.goods.entity.vo.GoodsSpuVo;
import com.qs.serve.modules.goods.mapper.GoodsSkuMapper; import com.qs.serve.modules.goods.mapper.GoodsSkuMapper;
import com.qs.serve.modules.goods.mapper.GoodsSpuMapper; import com.qs.serve.modules.goods.mapper.GoodsSpuMapper;
import com.qs.serve.modules.goods.service.*; import com.qs.serve.modules.goods.service.*;
import com.qs.serve.modules.oms.entity.OmsOrderItem;
import com.qs.serve.modules.oms.entity.dto.OmsSpuToSkuKey; import com.qs.serve.modules.oms.entity.dto.OmsSpuToSkuKey;
import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService; import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService;
import com.qs.serve.modules.tbs.common.TbsGoodsType; import com.qs.serve.modules.tbs.common.TbsGoodsType;
@ -304,6 +307,7 @@ public class GoodsSpuController {
} }
} }
} }
} }
@ -436,6 +440,24 @@ public class GoodsSpuController {
return R.byPageHelperList(list); return R.byPageHelperList(list);
} }
/**
* 翻页搜索(管理) post使用tagQueryList
* @param param
* @return
*/
@PostMapping("/pageByPost")
@PreAuthorize("hasRole('goods:spu:query')")
public R<PageVo<GoodsSpu>> getPageByPost(@RequestBody
GoodsSpu param){
if(DevEnvironmentConfig.OPEN_TENANT_BOOK){
param.setBookCodeList(BookAccountUtil.getCurrentUserAccount());
}
PageHelper.startPage(param.getPageNum(),param.getPageSize());
TagFiledUtil.GoodsSpuPage(param);
List<GoodsSpu> list = goodsSpuService.selectSpuList(param);
return R.byPageHelperList(list);
}
/** /**
* ID查询 * ID查询
* @param id * @param id

46
src/main/java/com/qs/serve/modules/goods/controller/api/GoodsImminentBatchApi.java

@ -17,16 +17,20 @@ import com.qs.serve.modules.goods.entity.*;
import com.qs.serve.modules.goods.entity.bo.GoodsImminentBatchBo; import com.qs.serve.modules.goods.entity.bo.GoodsImminentBatchBo;
import com.qs.serve.modules.goods.entity.dto.GoodsAccrIdsDto; import com.qs.serve.modules.goods.entity.dto.GoodsAccrIdsDto;
import com.qs.serve.modules.goods.entity.dto.GoodsRuleItemDTO; import com.qs.serve.modules.goods.entity.dto.GoodsRuleItemDTO;
import com.qs.serve.modules.goods.entity.dto.InventoryCusPrice;
import com.qs.serve.modules.goods.entity.so.GoodsImminentBatchQuery; import com.qs.serve.modules.goods.entity.so.GoodsImminentBatchQuery;
import com.qs.serve.modules.goods.entity.so.InventoryCusPriceQuery;
import com.qs.serve.modules.goods.entity.vo.GoodsImminentBatchVo; import com.qs.serve.modules.goods.entity.vo.GoodsImminentBatchVo;
import com.qs.serve.modules.goods.mapper.GoodsSkuMapper; import com.qs.serve.modules.goods.mapper.GoodsSkuMapper;
import com.qs.serve.modules.goods.mapper.GoodsSpuMapper; import com.qs.serve.modules.goods.mapper.GoodsSpuMapper;
import com.qs.serve.modules.goods.service.*; import com.qs.serve.modules.goods.service.*;
import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService; import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.service.TbsActivityGoodsService; import com.qs.serve.modules.tbs.service.TbsActivityGoodsService;
import com.qs.serve.modules.tbs.service.TbsBudgetConditionService; import com.qs.serve.modules.tbs.service.TbsBudgetConditionService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.Nullable;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -51,6 +55,7 @@ public class GoodsImminentBatchApi {
private GoodsCategoryService goodsCategoryService; private GoodsCategoryService goodsCategoryService;
private GoodsAccreditService goodsAccreditService; private GoodsAccreditService goodsAccreditService;
private GoodsImminentBatchService goodsImminentBatchService; private GoodsImminentBatchService goodsImminentBatchService;
private SeeYonRequestBaseService seeYonRequestBaseService;
/** /**
@ -86,9 +91,50 @@ public class GoodsImminentBatchApi {
return R.byEmptyList(); return R.byEmptyList();
} }
List<GoodsImminentBatchVo> list = goodsImminentBatchService.selectVoList(param); List<GoodsImminentBatchVo> list = goodsImminentBatchService.selectVoList(param);
List<String> skuCodes = list.stream().map(GoodsImminentBatchVo::getSkuCode).collect(Collectors.toList());
if(CollUtil.isNotEmpty(skuCodes)){
List<InventoryCusPrice> cusPriceList = this.getInventoryCusPrices(param.getSupplierCode(), skuCodes);
for (GoodsImminentBatchVo batchVo : list) {
if(cusPriceList!=null){
for (InventoryCusPrice cusPrice : cusPriceList) {
if(cusPrice.getInvCode().equals(batchVo.getSkuCode())){
batchVo.setSalesPrice(cusPrice.getPrice());
batchVo.setCostPrice(cusPrice.getPrice());
break;
}
}
}
}
}
return R.byPageList(total,list); return R.byPageList(total,list);
} }
/**
* 获取客户特殊价格
* @param supplierCode
* @param skuCodes
* @return
*/
@Nullable
private List<InventoryCusPrice> getInventoryCusPrices(String supplierCode, List<String> skuCodes) {
List<InventoryCusPrice> inventoryCusPrices = null;
try {
if(skuCodes.size()>0){
InventoryCusPriceQuery query = new InventoryCusPriceQuery();
query.setCusCode(supplierCode);
query.setInvCodes(skuCodes);
R<String> res = seeYonRequestBaseService.postBase(TbsSeeYonConst.ERP_CUS_INV_PRICE,query,"查询客户特殊价");
if(res.getStatus().equals(200)){
inventoryCusPrices = JsonUtil.jsonToList(res.getData(), InventoryCusPrice.class);
}
}
} catch (Exception e) {
log.error("客户特殊价异常:{}",e.getMessage());
}
return inventoryCusPrices;
}
/** /**
* ID查询 * ID查询
* @param id * @param id

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

@ -10,6 +10,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler; import com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler;
import com.qs.serve.modules.goods.entity.dto.GoodsAccrIdsDto; import com.qs.serve.modules.goods.entity.dto.GoodsAccrIdsDto;
import com.qs.serve.modules.tag.entity.so.TagQuery;
import lombok.Data; import lombok.Data;
import org.apache.ibatis.type.JdbcType; import org.apache.ibatis.type.JdbcType;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
@ -273,6 +274,16 @@ public class GoodsSpu implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private String orderProp; private String orderProp;
@TableField(exist = false)
private Integer pageNum;
@TableField(exist = false)
private Integer pageSize;
/** 标签查询 */
@TableField(exist = false)
List<TagQuery> tagQueryList;
public List<String> listCategoryIds(){ public List<String> listCategoryIds(){
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
list.add(this.getCategoryFirst()); list.add(this.getCategoryFirst());

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

@ -54,6 +54,10 @@ public class GoodsSpuServiceImpl extends ServiceImpl<GoodsSpuMapper,GoodsSpu> im
@Override @Override
public List<GoodsSpu> selectSpuList(GoodsSpu goodsSpu) { public List<GoodsSpu> selectSpuList(GoodsSpu goodsSpu) {
String orderType = PageUtil.getOrderType(); String orderType = PageUtil.getOrderType();
// 标签功能查询有可能是POST请求
if(orderType==null){
orderType = goodsSpu.getOrderType();
}
String orderProp = GoodsSpuColumnUtil.getSpuColumn(goodsSpu.getOrderProp()); String orderProp = GoodsSpuColumnUtil.getSpuColumn(goodsSpu.getOrderProp());
if(orderProp==null||orderType==null){ if(orderProp==null||orderType==null){
goodsSpu.setOrderType(null); goodsSpu.setOrderType(null);

2
src/main/java/com/qs/serve/modules/tag/TagTypeConst.java

@ -11,4 +11,6 @@ public interface TagTypeConst {
String Channel = "channel"; String Channel = "channel";
String Salesman = "salesman"; String Salesman = "salesman";
String SPU = "spu";
} }

8
src/main/java/com/qs/serve/modules/tag/controller/TagDataController.java

@ -16,6 +16,8 @@ import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.service.BmsChannelPointService; import com.qs.serve.modules.bms.service.BmsChannelPointService;
import com.qs.serve.modules.bms.service.BmsChannelService; import com.qs.serve.modules.bms.service.BmsChannelService;
import com.qs.serve.modules.bms.service.BmsSupplierService; import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.goods.entity.GoodsSpu;
import com.qs.serve.modules.goods.service.GoodsSpuService;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tag.TagTypeConst; import com.qs.serve.modules.tag.TagTypeConst;
@ -52,6 +54,7 @@ public class TagDataController {
private BmsChannelPointService bmsChannelPointService; private BmsChannelPointService bmsChannelPointService;
private BmsChannelService bmsChannelService; private BmsChannelService bmsChannelService;
private SysUserService sysUserService; private SysUserService sysUserService;
private GoodsSpuService goodsSpuService;
/** /**
@ -192,6 +195,7 @@ public class TagDataController {
tagDataList.add(data); tagDataList.add(data);
} }
} }
//其它类型暂未用的上 //其它类型暂未用的上
// else if (param.getTargetType().equals(TagTypeConst.Channel)){ // else if (param.getTargetType().equals(TagTypeConst.Channel)){
// BmsChannel channel = bmsChannelService.getById(objectDTO.getTargetId()); // BmsChannel channel = bmsChannelService.getById(objectDTO.getTargetId());
@ -458,6 +462,10 @@ public class TagDataController {
BmsChannelPoint point = bmsChannelPointService.getById(targetId); BmsChannelPoint point = bmsChannelPointService.getById(targetId);
data.setTargetCode(point.getPointCode()); data.setTargetCode(point.getPointCode());
data.setTargetName(point.getPointName()); data.setTargetName(point.getPointName());
}else if (targetType.equals(TagTypeConst.SPU)){
GoodsSpu spu = goodsSpuService.getById(targetId);
data.setTargetCode(spu.getSpuCode());
data.setTargetName(spu.getName());
}else{ }else{
SysUser sysUser = sysUserService.getById(targetId); SysUser sysUser = sysUserService.getById(targetId);
data.setTargetCode(sysUser.getCode()); data.setTargetCode(sysUser.getCode());

2
src/main/java/com/qs/serve/modules/tag/entity/TagData.java

@ -38,7 +38,7 @@ public class TagData implements Serializable {
/** 标签id */ /** 标签id */
private Long tagId; private Long tagId;
/** 业务类型 */ /** 业务类型 {@link com.qs.serve.modules.tag.TagTypeConst} */
@Length(max = 30,message = "业务类型长度不能超过30字") @Length(max = 30,message = "业务类型长度不能超过30字")
private String targetType; private String targetType;

2
src/main/java/com/qs/serve/modules/tag/entity/TagInfo.java

@ -57,7 +57,7 @@ public class TagInfo implements Serializable {
/** 工作类别 */ /** 工作类别 */
private String workType; private String workType;
/** 表示是否业务标签 */ /** 表示是否系统业务标签 */
private String businessFlag; private String businessFlag;
/** 备注 */ /** 备注 */

2
src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoBind2Bo.java

@ -36,7 +36,7 @@ public class TagInfoBind2Bo implements Serializable {
* 1`标签`为参照物删除历史`目标数据`并重新添加新的`目标数据` * 1`标签`为参照物删除历史`目标数据`并重新添加新的`目标数据`
* 2`目标数据`为参照物删除历史`标签`并重新添加新的`标签` * 2`目标数据`为参照物删除历史`标签`并重新添加新的`标签`
*/ */
private Integer saveType; //private Integer saveType;
} }

1
src/main/resources/mapper/goods/GoodsSpuMapper.xml

@ -259,6 +259,7 @@
LEFT JOIN `goods_category` `cate3` ON `cate3`.`id` = `goods_spu`.`category_third` LEFT JOIN `goods_category` `cate3` ON `cate3`.`id` = `goods_spu`.`category_third`
<where> <where>
<include refid="spuWherePart"></include> <include refid="spuWherePart"></include>
<include refid="com.qs.serve.modules.tag.mapper.TagDataMapper.tagSelectSql"></include>
</where> </where>
<if test="query.orderType != null and query.orderType != '' and query.orderProp != null and query.orderProp != '' "> <if test="query.orderType != null and query.orderType != '' and query.orderProp != null and query.orderProp != '' ">
order by ${query.orderProp} ${query.orderType} order by ${query.orderProp} ${query.orderType}

Loading…
Cancel
Save