Prechádzať zdrojové kódy

Merge branch 'dev-lt' into dev

ltt 2 rokov pred
rodič
commit
fa8c461f0a

+ 3 - 2
sckw-modules/sckw-product/src/main/java/com/sckw/product/controller/operation/GoodsManagerController.java

@@ -5,6 +5,7 @@ import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.product.model.GoodsListExport;
 import com.sckw.product.model.GoodsListExport;
+import com.sckw.product.model.OperationGoodsListExport;
 import com.sckw.product.model.vo.req.ExportStatisticGoodsListParam;
 import com.sckw.product.model.vo.req.ExportStatisticGoodsListParam;
 import com.sckw.product.model.vo.req.SelectGoodsListParam;
 import com.sckw.product.model.vo.req.SelectGoodsListParam;
 import com.sckw.product.model.vo.req.SelectOperationGoodsListParam;
 import com.sckw.product.model.vo.req.SelectOperationGoodsListParam;
@@ -78,10 +79,10 @@ public class GoodsManagerController {
      */
      */
     @PostMapping(value = "/export", produces = MediaType.APPLICATION_JSON_VALUE)
     @PostMapping(value = "/export", produces = MediaType.APPLICATION_JSON_VALUE)
     public void export(@RequestBody ExportStatisticGoodsListParam params, HttpServletResponse response) {
     public void export(@RequestBody ExportStatisticGoodsListParam params, HttpServletResponse response) {
-        List<GoodsListExport> list = goodsManagerService.export(params);
+        List<OperationGoodsListExport> list = goodsManagerService.export(params);
         if (CollectionUtils.isEmpty(list)) {
         if (CollectionUtils.isEmpty(list)) {
             throw new BusinessException("导出数据为空!");
             throw new BusinessException("导出数据为空!");
         }
         }
-        ExcelUtil.downData(response, GoodsListExport.class, list);
+        ExcelUtil.downData(response, OperationGoodsListExport.class, list);
     }
     }
 }
 }

+ 97 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/OperationGoodsListExport.java

@@ -0,0 +1,97 @@
+package com.sckw.product.model;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.sckw.excel.annotation.ExcelContext;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @desc: 商品列表导出对象
+ * @author: yzc
+ * @date: 2023-07-06 9:15
+ */
+@Data
+@Accessors(chain = true)
+@ExcelContext(fileName = "商品列表信息", sheetName = "商品列表信息")
+public class OperationGoodsListExport{
+
+    @Serial
+    private static final long serialVersionUID = 6833195135537265912L;
+
+    @ExcelProperty(value = "序号" )
+    private String serialNumber;
+
+    @ExcelProperty(value = "上架状态")
+    private String statusLabel;
+
+    @ExcelProperty(value = "商品编号")
+    private String code;
+
+    @ExcelProperty(value = "商品名称")
+    private String name;
+
+    @ExcelProperty(value = "商品类别")
+    private String goodsTypeLabel;
+
+    @ExcelProperty(value = "计量单位")
+    private String unitLabel;
+
+    @ExcelProperty(value = "规格尺寸")
+    private String spec;
+
+    @ExcelProperty(value = "发票税率")
+    private String taxRateLabel;
+
+    @ExcelProperty(value = "库存数量")
+    private String amount;
+
+    @ExcelProperty(value = "是否预付限额")
+    private String prepaidLimitLabel;
+
+    @ExcelProperty(value = "预付款最低限额")
+    private String advancePrice;
+
+    @ExcelProperty(value = "最低单价")
+    private String highestPrice;
+
+    @ExcelProperty(value = "最高单价")
+    private String lowestPrice;
+
+    @ExcelProperty(value = "仓储地址")
+    private String address;
+
+    @ExcelProperty(value = "客户经理")
+    private String manageName;
+
+    @ExcelProperty(value = "联系电话")
+    private String phone;
+
+    @ExcelProperty(value = "上架时间")
+    private String addedTime;
+
+    @ExcelProperty(value = "下架时间")
+    private String shelfTime;
+
+    @ExcelProperty(value = "供应企业")
+    private String supplyEnt;
+
+    @ExcelProperty(value = "创建人")
+    private String createByName;
+
+    @ExcelProperty(value = "创建时间")
+    private String createTime;
+
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+
+
+
+
+
+
+
+}

+ 168 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/res/OperationGoodsList.java

@@ -0,0 +1,168 @@
+package com.sckw.product.model.vo.res;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @desc: 运营端商品列表
+ * @author: lt
+ * @date: 2023-09-14 11:54
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+public class OperationGoodsList{
+
+    /**
+     * 商品id
+     */
+    private Long id;
+
+    /**
+     * 商品编号
+     */
+    private Long code;
+
+
+    /**
+     * 状态:0草稿/1上架/2下架
+     */
+    private Integer status;
+
+    /**
+     * 状态label
+     */
+    private String statusLabel;
+
+    /**
+     * 商品名称
+     */
+    private String name;
+
+    /**
+     * 商品缩略图
+     */
+    private String thumb;
+
+    /**
+     * 商品类型
+     */
+    private String goodsType;
+
+    /**
+     * 商品类型Label
+     */
+    private String goodsTypeLabel;
+
+    /**
+     * 计量单位(吨、方、件、箱、其他)
+     */
+    private String unit;
+
+    /**
+     * 计量单位lab
+     */
+    private String unitLabel;
+
+    /**
+     * 尺寸大小
+     */
+    private String spec;
+
+    /**
+     * 发票税率(%)
+     */
+    private String taxRate;
+
+    /**
+     * 发票税率label
+     */
+    private String taxRateLabel;
+
+    /**
+     * 库存数量
+     */
+    private BigDecimal amount;
+
+    /**
+     * 是否设置预付限额0否1是
+     */
+    private Integer prepaidLimit;
+
+    /**
+     * 是否设置预付限额label
+     */
+    private String prepaidLimitLabel;
+
+    /**
+     * 预付款最低限额
+     */
+    private BigDecimal advancePrice;
+
+    /**
+     * 最高单价
+     */
+    private BigDecimal highestPrice;
+
+    /**
+     * 最低单价
+     */
+    private BigDecimal lowestPrice;
+
+    /**
+     * 仓储地址
+     */
+    private String address;
+
+    /**
+     * 客户经理
+     */
+    private String manageName;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 上架时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date addedTime;
+
+    /**
+     * 下架时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date shelfTime;
+
+    /**
+     * 供应企业
+     */
+    private String supplyEnt;
+
+    /**
+     * 创建人
+     */
+    private String createByName;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

+ 24 - 49
sckw-modules/sckw-product/src/main/java/com/sckw/product/service/operation/GoodsManagerService.java

@@ -76,7 +76,7 @@ public class GoodsManagerService {
         if (CollectionUtils.isEmpty(list)) {
         if (CollectionUtils.isEmpty(list)) {
             return PageResult.build(params.getPage(), params.getPageSize(), goodsIpage.getTotal(), Collections.emptyList());
             return PageResult.build(params.getPage(), params.getPageSize(), goodsIpage.getTotal(), Collections.emptyList());
         }
         }
-        List<GoodsList> result = buildGoodLists(list);
+        List<OperationGoodsList> result = buildGoodLists(list);
         return PageResult.build(params.getPage(), params.getPageSize(), goodsIpage.getTotal(), result);
         return PageResult.build(params.getPage(), params.getPageSize(), goodsIpage.getTotal(), result);
     }
     }
 
 
@@ -100,6 +100,8 @@ public class GoodsManagerService {
             if (Objects.nonNull(params.getEndCreateTime())) {
             if (Objects.nonNull(params.getEndCreateTime())) {
                 wrapper.le(KwpGoods::getCreateTime, params.getEndCreateTime());
                 wrapper.le(KwpGoods::getCreateTime, params.getEndCreateTime());
             }
             }
+            //运营端不需要显示草稿数据
+            wrapper.ne(KwpGoods::getStatus, 0);
             wrapper.eq(Objects.nonNull(params.getSupplyEntId()), KwpGoods::getSupplyEntId, params.getSupplyEntId())
             wrapper.eq(Objects.nonNull(params.getSupplyEntId()), KwpGoods::getSupplyEntId, params.getSupplyEntId())
                     .eq(Objects.nonNull(params.getPrepaidLimit()), KwpGoods::getPrepaidLimit, params.getPrepaidLimit())
                     .eq(Objects.nonNull(params.getPrepaidLimit()), KwpGoods::getPrepaidLimit, params.getPrepaidLimit())
                     .eq(Objects.nonNull(params.getStatus()), KwpGoods::getStatus, params.getStatus());
                     .eq(Objects.nonNull(params.getStatus()), KwpGoods::getStatus, params.getStatus());
@@ -134,8 +136,8 @@ public class GoodsManagerService {
      * @Param list:
      * @Param list:
      * @return: java.util.List<com.sckw.product.model.vo.res.GoodsList>
      * @return: java.util.List<com.sckw.product.model.vo.res.GoodsList>
      */
      */
-    private List<GoodsList> buildGoodLists(List<KwpGoods> list) {
-        List<GoodsList> result = new ArrayList<>(list.size());
+    private List<OperationGoodsList> buildGoodLists(List<KwpGoods> list) {
+        List<OperationGoodsList> result = new ArrayList<>(list.size());
         List<Long> goodsIds = new ArrayList<>(list.size());
         List<Long> goodsIds = new ArrayList<>(list.size());
         List<Long> supplyEntIds = new ArrayList<>(list.size());
         List<Long> supplyEntIds = new ArrayList<>(list.size());
         List<Long> userIds = new ArrayList<>();
         List<Long> userIds = new ArrayList<>();
@@ -167,13 +169,13 @@ public class GoodsManagerService {
         Map<Long, String> entMap = entList.stream().collect(Collectors.toMap(EntCacheResDto::getId, EntCacheResDto::getFirmName, (k1, k2) -> k1));
         Map<Long, String> entMap = entList.stream().collect(Collectors.toMap(EntCacheResDto::getId, EntCacheResDto::getFirmName, (k1, k2) -> k1));
         list.forEach(e -> {
         list.forEach(e -> {
             Long id = e.getId();
             Long id = e.getId();
-            GoodsList goodsList = BeanUtils.copyProperties(e, GoodsList.class);
+            OperationGoodsList operationGoodsList = BeanUtils.copyProperties(e, OperationGoodsList.class);
             UserCacheResDto manager = userMap.get(e.getManager());
             UserCacheResDto manager = userMap.get(e.getManager());
             UserCacheResDto createUser = userMap.get(e.getCreateBy());
             UserCacheResDto createUser = userMap.get(e.getCreateBy());
-            goodsList.setStatusLabel(DictEnum.getLabel(DictTypeEnum.GOODS_STATUS.getType(), String.valueOf(goodsList.getStatus())))
-                    .setGoodsTypeLabel(DictEnum.getLabel(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), goodsList.getGoodsType()))
-                    .setUnitLabel(DictEnum.getLabel(DictTypeEnum.UNIT_TYPE.getType(), goodsList.getUnit()))
-                    .setTaxRateLabel(DictEnum.getLabel(DictTypeEnum.TAX_RATE.getType(), goodsList.getTaxRate()))
+            operationGoodsList.setStatusLabel(DictEnum.getLabel(DictTypeEnum.GOODS_STATUS.getType(), String.valueOf(operationGoodsList.getStatus())))
+                    .setGoodsTypeLabel(DictEnum.getLabel(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), operationGoodsList.getGoodsType()))
+                    .setUnitLabel(DictEnum.getLabel(DictTypeEnum.UNIT_TYPE.getType(), operationGoodsList.getUnit()))
+                    .setTaxRateLabel(DictEnum.getLabel(DictTypeEnum.TAX_RATE.getType(), operationGoodsList.getTaxRate()))
                     .setPrepaidLimitLabel(Objects.equals(e.getPrepaidLimit(), 1) ? "是" : "否")
                     .setPrepaidLimitLabel(Objects.equals(e.getPrepaidLimit(), 1) ? "是" : "否")
                     .setAddress(addressMap.get(id)).setSupplyEnt(entMap.get(e.getSupplyEntId()))
                     .setAddress(addressMap.get(id)).setSupplyEnt(entMap.get(e.getSupplyEntId()))
                     .setManageName(Objects.nonNull(manager) ? manager.getName() : null)
                     .setManageName(Objects.nonNull(manager) ? manager.getName() : null)
@@ -181,46 +183,13 @@ public class GoodsManagerService {
                     .setCreateByName(Objects.nonNull(createUser) ? createUser.getName() : null);
                     .setCreateByName(Objects.nonNull(createUser) ? createUser.getName() : null);
             List<KwpGoodsPriceRange> priceRanges = priceRangeMap.get(id);
             List<KwpGoodsPriceRange> priceRanges = priceRangeMap.get(id);
             if (CollectionUtils.isNotEmpty(priceRanges)) {
             if (CollectionUtils.isNotEmpty(priceRanges)) {
-                goodsList.setHighestPrice(priceRanges.get(priceRanges.size() - 1).getPrice()).setLowestPrice(priceRanges.get(0).getPrice());
+                operationGoodsList.setHighestPrice(priceRanges.get(priceRanges.size() - 1).getPrice()).setLowestPrice(priceRanges.get(0).getPrice());
             }
             }
-            result.add(goodsList);
+            result.add(operationGoodsList);
         });
         });
         return result;
         return result;
     }
     }
 
 
-
-
-    /**
-     * @desc: 获取商品详情
-     * @author: lt
-     * @date: 2023-09-14 14:28
-     * @Param id:
-     * @return: com.sckw.product.model.vo.res.GoodsDetail
-     */
-    public OperationGoodsDetail getDetail(Long id) {
-        OperationGoodsDetail detail = detail(id);
-        LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(KwpGoods::getGoodsType, detail.getGoodsType()).eq(KwpGoods::getStatus, GoodsStatusEnum.PUT_ON_SHELVES.getCode())
-                .eq(KwpGoods::getDelFlag, Global.NO).ne(KwpGoods::getId, id).last("LIMIT 4");
-        List<KwpGoods> list = kwpGoodsMapper.selectList(wrapper);
-        if (CollectionUtils.isEmpty(list)) {
-            return detail;
-        }
-        List<Long> goodsIds = list.stream().map(KwpGoods::getId).toList();
-        Map<Long, List<KwpGoodsPriceRange>> map = kwpGoodsPriceRangeService.getByGoodsIds(goodsIds).stream()
-                .collect(Collectors.groupingBy(KwpGoodsPriceRange::getGoodsId));
-        List<RecommendGoods> recommendGoodsList = new ArrayList<>();
-        list.forEach(e -> {
-            RecommendGoods recommendGoods = BeanUtils.copyProperties(e, RecommendGoods.class);
-            List<KwpGoodsPriceRange> prices = map.get(recommendGoods.getId());
-            recommendGoods.setUnitLabel(DictEnum.getLabel(DictTypeEnum.UNIT_TYPE.getType(), recommendGoods.getUnit()))
-                    .setPrice(CollectionUtils.isNotEmpty(prices) ? prices.get(0).getPrice() : null);
-            recommendGoodsList.add(recommendGoods);
-        });
-        detail.setRecommendGoodsList(recommendGoodsList);
-        return detail;
-    }
-
     /**
     /**
      * @desc: 获取商品详情
      * @desc: 获取商品详情
      * @author: lt
      * @author: lt
@@ -228,7 +197,7 @@ public class GoodsManagerService {
      * @Param id:
      * @Param id:
      * @return: com.sckw.product.model.vo.res.GoodsDetail
      * @return: com.sckw.product.model.vo.res.GoodsDetail
      */
      */
-    public OperationGoodsDetail detail(Long id) {
+    public OperationGoodsDetail getDetail(Long id) {
         KwpGoods goods = kwpGoodsMapper.selectById(id);
         KwpGoods goods = kwpGoodsMapper.selectById(id);
         if (Objects.isNull(goods)) {
         if (Objects.isNull(goods)) {
             throw new BusinessException("当前商品不存在!");
             throw new BusinessException("当前商品不存在!");
@@ -302,7 +271,10 @@ public class GoodsManagerService {
         });
         });
         TableBottom tableBottom = new TableBottom();
         TableBottom tableBottom = new TableBottom();
         tableBottom.setTotal(CollectionUtils.isEmpty(goodsList) ? 0 : goodsList.size());
         tableBottom.setTotal(CollectionUtils.isEmpty(goodsList) ? 0 : goodsList.size());
-        res.setTableTops(tableTops).setTableBottom(tableBottom);
+        List<TableTop> filteredTableTops = tableTops.stream()
+                .filter(tableTop -> !tableTop.getName().equals("已保存"))
+                .collect(Collectors.toList());
+        res.setTableTops(filteredTableTops).setTableBottom(tableBottom);
         return res;
         return res;
     }
     }
 
 
@@ -313,17 +285,20 @@ public class GoodsManagerService {
      * @Param params:
      * @Param params:
      * @return: void
      * @return: void
      */
      */
-    public List<GoodsListExport> export(ExportStatisticGoodsListParam params) {
+    public List<OperationGoodsListExport> export(ExportStatisticGoodsListParam params) {
         LambdaQueryWrapper<KwpGoods> wrapper = buildWrapper(params);
         LambdaQueryWrapper<KwpGoods> wrapper = buildWrapper(params);
+        System.out.println(1);
         List<KwpGoods> list = kwpGoodsMapper.selectList(wrapper);
         List<KwpGoods> list = kwpGoodsMapper.selectList(wrapper);
-        List<GoodsList> goodsLists = buildGoodLists(list);
+        System.out.println(2);
+        List<OperationGoodsList> goodsLists = buildGoodLists(list);
+        System.out.println(3);
         if (CollectionUtils.isEmpty(goodsLists)) {
         if (CollectionUtils.isEmpty(goodsLists)) {
             return Collections.emptyList();
             return Collections.emptyList();
         }
         }
-        List<GoodsListExport> result = new ArrayList<>();
+        List<OperationGoodsListExport> result = new ArrayList<>();
         AtomicInteger i = new AtomicInteger(1);
         AtomicInteger i = new AtomicInteger(1);
         goodsLists.forEach(e -> {
         goodsLists.forEach(e -> {
-            GoodsListExport export = BeanUtils.copyProperties(e, GoodsListExport.class);
+            OperationGoodsListExport export = BeanUtils.copyProperties(e, OperationGoodsListExport.class);
             export.setSerialNumber(String.valueOf(i.getAndIncrement()))
             export.setSerialNumber(String.valueOf(i.getAndIncrement()))
                     .setAmount(Objects.isNull(e.getAmount()) ? null : String.valueOf(e.getAmount()))
                     .setAmount(Objects.isNull(e.getAmount()) ? null : String.valueOf(e.getAmount()))
                     .setHighestPrice(Objects.isNull(e.getHighestPrice()) ? null : String.valueOf(e.getHighestPrice()))
                     .setHighestPrice(Objects.isNull(e.getHighestPrice()) ? null : String.valueOf(e.getHighestPrice()))