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. 13
      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 com.qs.serve.common.util.StringUtils;
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.tag.entity.so.TagQuery;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
@ -43,6 +44,10 @@ public class TagFiledUtil {
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){
List<TagQuery> paramTagList = param.getTagQueryList();
List<TagQuery> newList = getNewList(paramTagList,TbsCostApplyPageMap);
@ -69,6 +74,12 @@ public class TagFiledUtil {
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){
List<TagQuery> paramTagList = param.getTagQueryList();
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.QueryWrapper;
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.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
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.modules.bms.common.BookAccountUtil;
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.GoodsSpuMapper;
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.seeyon.service.impl.SeeYonRequestBaseService;
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);
}
/**
* 翻页搜索(管理) 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查询
* @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.dto.GoodsAccrIdsDto;
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.InventoryCusPriceQuery;
import com.qs.serve.modules.goods.entity.vo.GoodsImminentBatchVo;
import com.qs.serve.modules.goods.mapper.GoodsSkuMapper;
import com.qs.serve.modules.goods.mapper.GoodsSpuMapper;
import com.qs.serve.modules.goods.service.*;
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.TbsBudgetConditionService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.Nullable;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@ -51,6 +55,7 @@ public class GoodsImminentBatchApi {
private GoodsCategoryService goodsCategoryService;
private GoodsAccreditService goodsAccreditService;
private GoodsImminentBatchService goodsImminentBatchService;
private SeeYonRequestBaseService seeYonRequestBaseService;
/**
@ -86,9 +91,50 @@ public class GoodsImminentBatchApi {
return R.byEmptyList();
}
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);
}
/**
* 获取客户特殊价格
* @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查询
* @param id

13
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.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler;
import com.qs.serve.modules.goods.entity.dto.GoodsAccrIdsDto;
import com.qs.serve.modules.tag.entity.so.TagQuery;
import lombok.Data;
import org.apache.ibatis.type.JdbcType;
import org.hibernate.validator.constraints.Length;
@ -266,13 +267,23 @@ public class GoodsSpu implements Serializable {
*/
@TableField(exist = false)
private String orderType;
/**
* 列名
*/
@TableField(exist = false)
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(){
List<String> list = new ArrayList<>();
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
public List<GoodsSpu> selectSpuList(GoodsSpu goodsSpu) {
String orderType = PageUtil.getOrderType();
// 标签功能查询有可能是POST请求
if(orderType==null){
orderType = goodsSpu.getOrderType();
}
String orderProp = GoodsSpuColumnUtil.getSpuColumn(goodsSpu.getOrderProp());
if(orderProp==null||orderType==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 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.BmsChannelService;
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.service.SysUserService;
import com.qs.serve.modules.tag.TagTypeConst;
@ -52,6 +54,7 @@ public class TagDataController {
private BmsChannelPointService bmsChannelPointService;
private BmsChannelService bmsChannelService;
private SysUserService sysUserService;
private GoodsSpuService goodsSpuService;
/**
@ -192,6 +195,7 @@ public class TagDataController {
tagDataList.add(data);
}
}
//其它类型暂未用的上
// else if (param.getTargetType().equals(TagTypeConst.Channel)){
// BmsChannel channel = bmsChannelService.getById(objectDTO.getTargetId());
@ -458,6 +462,10 @@ public class TagDataController {
BmsChannelPoint point = bmsChannelPointService.getById(targetId);
data.setTargetCode(point.getPointCode());
data.setTargetName(point.getPointName());
}else if (targetType.equals(TagTypeConst.SPU)){
GoodsSpu spu = goodsSpuService.getById(targetId);
data.setTargetCode(spu.getSpuCode());
data.setTargetName(spu.getName());
}else{
SysUser sysUser = sysUserService.getById(targetId);
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 */
private Long tagId;
/** 业务类型 */
/** 业务类型 {@link com.qs.serve.modules.tag.TagTypeConst} */
@Length(max = 30,message = "业务类型长度不能超过30字")
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 businessFlag;
/** 备注 */

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

@ -36,7 +36,7 @@ public class TagInfoBind2Bo implements Serializable {
* 1`标签`为参照物删除历史`目标数据`并重新添加新的`目标数据`
* 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`
<where>
<include refid="spuWherePart"></include>
<include refid="com.qs.serve.modules.tag.mapper.TagDataMapper.tagSelectSql"></include>
</where>
<if test="query.orderType != null and query.orderType != '' and query.orderProp != null and query.orderProp != '' ">
order by ${query.orderProp} ${query.orderType}

Loading…
Cancel
Save