diff --git a/src/main/java/com/qs/serve/common/model/tag/TagFiledUtil.java b/src/main/java/com/qs/serve/common/model/tag/TagFiledUtil.java index c73ebe57..7424a391 100644 --- a/src/main/java/com/qs/serve/common/model/tag/TagFiledUtil.java +++ b/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 goodsSpuPageMap = new HashMap(){{ + put("id","goods_spu.id"); + }}; + public static void TbsCostApplyPage(TbsCostApply param){ List paramTagList = param.getTagQueryList(); List newList = getNewList(paramTagList,TbsCostApplyPageMap); @@ -69,6 +74,12 @@ public class TagFiledUtil { param.setTagQueryList(newList); } + public static void GoodsSpuPage(GoodsSpu param){ + List paramTagList = param.getTagQueryList(); + List newList = getNewList(paramTagList,goodsSpuPageMap); + param.setTagQueryList(newList); + } + public static void HisSupplierPage(HisUserSupplier param){ List paramTagList = param.getTagQueryList(); List newList = getNewList(paramTagList,HisSupplierPageMap); 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 38061814..12ae4c8b 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 @@ -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> getPageByPost(@RequestBody + GoodsSpu param){ + if(DevEnvironmentConfig.OPEN_TENANT_BOOK){ + param.setBookCodeList(BookAccountUtil.getCurrentUserAccount()); + } + PageHelper.startPage(param.getPageNum(),param.getPageSize()); + TagFiledUtil.GoodsSpuPage(param); + List list = goodsSpuService.selectSpuList(param); + return R.byPageHelperList(list); + } + /** * ID查询 * @param id diff --git a/src/main/java/com/qs/serve/modules/goods/controller/api/GoodsImminentBatchApi.java b/src/main/java/com/qs/serve/modules/goods/controller/api/GoodsImminentBatchApi.java index f4c28367..c28382eb 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/api/GoodsImminentBatchApi.java +++ b/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 list = goodsImminentBatchService.selectVoList(param); + List skuCodes = list.stream().map(GoodsImminentBatchVo::getSkuCode).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(skuCodes)){ + List 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 getInventoryCusPrices(String supplierCode, List skuCodes) { + List inventoryCusPrices = null; + try { + if(skuCodes.size()>0){ + InventoryCusPriceQuery query = new InventoryCusPriceQuery(); + query.setCusCode(supplierCode); + query.setInvCodes(skuCodes); + R 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 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 23ed764d..3e21774e 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 @@ -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 tagQueryList; + public List listCategoryIds(){ List list = new ArrayList<>(); list.add(this.getCategoryFirst()); 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 ad3acbee..dab2f28d 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 @@ -54,6 +54,10 @@ public class GoodsSpuServiceImpl extends ServiceImpl im @Override public List 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); diff --git a/src/main/java/com/qs/serve/modules/tag/TagTypeConst.java b/src/main/java/com/qs/serve/modules/tag/TagTypeConst.java index 5f3de976..ecdb88a1 100644 --- a/src/main/java/com/qs/serve/modules/tag/TagTypeConst.java +++ b/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"; + } diff --git a/src/main/java/com/qs/serve/modules/tag/controller/TagDataController.java b/src/main/java/com/qs/serve/modules/tag/controller/TagDataController.java index be88125c..1a2a4ea6 100644 --- a/src/main/java/com/qs/serve/modules/tag/controller/TagDataController.java +++ b/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()); diff --git a/src/main/java/com/qs/serve/modules/tag/entity/TagData.java b/src/main/java/com/qs/serve/modules/tag/entity/TagData.java index e1051fd5..6f040c65 100644 --- a/src/main/java/com/qs/serve/modules/tag/entity/TagData.java +++ b/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; diff --git a/src/main/java/com/qs/serve/modules/tag/entity/TagInfo.java b/src/main/java/com/qs/serve/modules/tag/entity/TagInfo.java index 1bee5821..a48dca7f 100644 --- a/src/main/java/com/qs/serve/modules/tag/entity/TagInfo.java +++ b/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; /** 备注 */ diff --git a/src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoBind2Bo.java b/src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoBind2Bo.java index 6d93e81a..2c818074 100644 --- a/src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoBind2Bo.java +++ b/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; } diff --git a/src/main/resources/mapper/goods/GoodsSpuMapper.xml b/src/main/resources/mapper/goods/GoodsSpuMapper.xml index 3882c53c..0541a2d1 100644 --- a/src/main/resources/mapper/goods/GoodsSpuMapper.xml +++ b/src/main/resources/mapper/goods/GoodsSpuMapper.xml @@ -259,6 +259,7 @@ LEFT JOIN `goods_category` `cate3` ON `cate3`.`id` = `goods_spu`.`category_third` + order by ${query.orderProp} ${query.orderType}