Jelajahi Sumber

Merge remote-tracking branch 'origin/dev' into dev

czh 2 tahun lalu
induk
melakukan
1e954bed5e

+ 10 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/page/PageResult.java

@@ -66,6 +66,16 @@ public class PageResult {
         this.list = pageInfo.getList();
     }
 
+    public static <T> PageResult build(Integer page, Integer pageSize, Integer totalCount, List<T> records) {
+        PageResult pageResult = new PageResult();
+        pageResult.setPage(page);
+        pageResult.setPageSize(pageSize);
+        pageResult.setSize(totalCount);
+        pageResult.setPages((totalCount + pageSize - 1) / pageSize);
+        pageResult.setList(records);
+        return pageResult;
+    }
+
     public void setPageInfo(PageInfo pageInfo){
         this.page = pageInfo.getPageNum();
         this.pageSize = pageInfo.getPageSize();

+ 1 - 6
sckw-modules/sckw-product/src/main/java/com/sckw/product/controller/KwpGoodsController.java

@@ -1,6 +1,5 @@
 package com.sckw.product.controller;
 
-import cn.hutool.core.bean.BeanUtil;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.core.model.page.PageHelperUtil;
@@ -8,7 +7,6 @@ import com.sckw.core.model.page.PageResult;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.product.model.vo.req.*;
 import com.sckw.product.model.vo.res.BuildingMaterialsMarketList;
-import com.sckw.product.model.vo.res.GoodsList;
 import com.sckw.product.service.KwpGoodsService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.http.MediaType;
@@ -90,10 +88,7 @@ public class KwpGoodsController {
      */
     @PostMapping(value = "/select", produces = MediaType.APPLICATION_JSON_VALUE)
     public HttpResult select(@RequestBody SelectGoodsListParam params) {
-        PageHelper.startPage(params.getPage(), params.getPageSize());
-        List<GoodsList> list = kwpGoodsService.select(BeanUtil.copyProperties(params, ExportGoodsListParam.class));
-        PageResult result = PageHelperUtil.getPageResult(new PageInfo<>(list));
-        return HttpResult.ok(result);
+        return HttpResult.ok(kwpGoodsService.select(params,true));
     }
 
     /**

+ 6 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/dao/KwpGoodsMapper.java

@@ -1,8 +1,12 @@
 package com.sckw.product.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.sckw.product.model.KwpGoods;
+import com.sckw.product.model.vo.req.SelectGoodsListParam;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
 
 /**
  * @desc: 商品mapper
@@ -10,6 +14,8 @@ import org.apache.ibatis.annotations.Mapper;
  * @date: 2023-06-25 14:40
  */
 @Mapper
+@Repository
 public interface KwpGoodsMapper extends BaseMapper<KwpGoods> {
 
+    IPage<KwpGoods> getGoodsLists(IPage<KwpGoods> page, @Param("queryParam") SelectGoodsListParam queryParam,@Param("entId") Long entId);
 }

+ 4 - 1
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/req/SelectGoodsListParam.java

@@ -51,5 +51,8 @@ public class SelectGoodsListParam extends PageRequest {
      */
     private List<String> tradings;
 
-
+    /**
+     * 商品ids
+     */
+    private List<Long> ids;
 }

+ 35 - 26
sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java

@@ -2,8 +2,11 @@ package com.sckw.product.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.page.PageResult;
 import com.sckw.core.model.vo.TableBottom;
 import com.sckw.core.model.vo.TableStatisticRes;
 import com.sckw.core.model.vo.TableTop;
@@ -300,18 +303,11 @@ public class KwpGoodsService {
      * @Param params:
      * @return: java.util.List<com.sckw.product.model.vo.res.GoodsList>
      */
-    public List<GoodsList> select(ExportGoodsListParam params) {
-        List<Long> ids = params.getIds();
-        List<KwpGoods> goodsLists;
-        if (CollectionUtils.isEmpty(ids)) {
-            goodsLists = getGoodsLists(params);
-        } else {
-            LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
-            wrapper.in(KwpGoods::getId, ids).eq(KwpGoods::getEntId, LoginUserHolder.getEntId()).eq(KwpGoods::getDelFlag, Global.NO);
-            goodsLists = kwpGoodsMapper.selectList(wrapper);
-        }
+    public PageResult select(SelectGoodsListParam params, Boolean isPage) {
+        IPage<KwpGoods> goodsIpage = getGoodsLists(params, isPage);
+        List<KwpGoods> goodsLists = goodsIpage.getRecords();
         if (CollectionUtils.isEmpty(goodsLists)) {
-            return Collections.emptyList();
+            return PageResult.build(params.getPage(), params.getPageSize(), (int) goodsIpage.getTotal(), Collections.emptyList());
         }
         List<GoodsList> result = new ArrayList<>(goodsLists.size());
         List<Long> goodsIds = goodsLists.stream().map(KwpGoods::getId).toList();
@@ -331,7 +327,7 @@ public class KwpGoodsService {
             goodsList.setLowestPrice(CollectionUtils.isEmpty(priceRanges) ? null : priceRanges.get(0).getPrice());
             result.add(goodsList);
         });
-        return result;
+        return PageResult.build(params.getPage(), params.getPageSize(), (int) goodsIpage.getTotal(), result);
     }
 
     /**
@@ -341,17 +337,28 @@ public class KwpGoodsService {
      * @Param params:
      * @return: java.util.List<com.sckw.product.model.KwpGoods>
      */
-    private List<KwpGoods> getGoodsLists(GoodsListParam params) {
+    private IPage<KwpGoods> getGoodsLists(SelectGoodsListParam params, Boolean isPage) {
         LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
-        wrapper.like(StringUtils.isNotBlank(params.getKeywords()), KwpGoods::getName, params.getKeywords())
-                .ge(Objects.nonNull(params.getStartCreateTime()), KwpGoods::getCreateTime, params.getStartCreateTime())
-                .le(Objects.nonNull(params.getEndCreateTime()), KwpGoods::getCreateTime, params.getEndCreateTime())
-                .in(CollectionUtils.isNotEmpty(params.getTradings()), KwpGoods::getTrading, params.getTradings())
-                .in(CollectionUtils.isNotEmpty(params.getTypeIds()), KwpGoods::getTypeId, params.getTypeIds())
-                .in(CollectionUtils.isNotEmpty(params.getStatus()), KwpGoods::getStatus, params.getStatus())
-                .eq(KwpGoods::getEntId, LoginUserHolder.getEntId()).eq(KwpGoods::getDelFlag, Global.NO).orderByDesc(KwpGoods::getCreateTime);
-        List<KwpGoods> list = kwpGoodsMapper.selectList(wrapper);
-        return CollectionUtils.emptyIfNull(list);
+        if (CollectionUtils.isNotEmpty(params.getIds())) {
+            wrapper.in(KwpGoods::getId, params.getIds());
+        } else {
+            wrapper.like(StringUtils.isNotBlank(params.getKeywords()), KwpGoods::getName, params.getKeywords())
+                    .ge(Objects.nonNull(params.getStartCreateTime()), KwpGoods::getCreateTime, params.getStartCreateTime())
+                    .le(Objects.nonNull(params.getEndCreateTime()), KwpGoods::getCreateTime, params.getEndCreateTime())
+                    .in(CollectionUtils.isNotEmpty(params.getTradings()), KwpGoods::getTrading, params.getTradings())
+                    .in(CollectionUtils.isNotEmpty(params.getTypeIds()), KwpGoods::getTypeId, params.getTypeIds())
+                    .in(CollectionUtils.isNotEmpty(params.getStatus()), KwpGoods::getStatus, params.getStatus());
+        }
+        wrapper.eq(KwpGoods::getEntId, LoginUserHolder.getEntId()).eq(KwpGoods::getDelFlag, Global.NO).orderByDesc(KwpGoods::getCreateTime);
+        IPage<KwpGoods> goodsIpage = new Page<>();
+        Page<KwpGoods> page = new Page<>(params.getPage(), params.getPageSize());
+        if (isPage) {
+            goodsIpage = kwpGoodsMapper.selectPage(page, wrapper);
+        } else {
+            List<KwpGoods> list = kwpGoodsMapper.selectList(wrapper);
+            goodsIpage.setRecords(list);
+        }
+        return goodsIpage;
     }
 
 
@@ -364,7 +371,7 @@ public class KwpGoodsService {
      */
     public TableStatisticRes statistic(GoodsListParam params) {
         TableStatisticRes res = new TableStatisticRes();
-        List<KwpGoods> goodsList = getGoodsLists(params);
+        List<KwpGoods> goodsList = getGoodsLists(BeanUtils.copyProperties(params, SelectGoodsListParam.class), false).getRecords();
         Map<Integer, List<KwpGoods>> map = goodsList.stream().collect(Collectors.groupingBy(KwpGoods::getStatus));
         List<TableTop> tableTops = new ArrayList<>();
         GoodsStatusEnum.getSortList().forEach(e -> {
@@ -388,15 +395,17 @@ public class KwpGoodsService {
      * @return: void
      */
     public void export(ExportGoodsListParam params) {
-        List<GoodsList> goodsLists = select(params);
+        PageResult pageResult = select(BeanUtils.copyProperties(params, SelectGoodsListParam.class), false);
+        List<GoodsList> goodsLists = pageResult.getList();
         List<GoodsListExport> list = new ArrayList<>();
         goodsLists.forEach(e -> {
             GoodsListExport export = BeanUtils.copyProperties(e, GoodsListExport.class);
             export.setStatus(GoodsStatusEnum.getNameByCode(e.getStatus()))
                     .setType("砂石").setTaxRate(String.valueOf(e.getTaxRate())).setAmount(String.valueOf(e.getAmount()))
                     .setTrading("线下付款").setHighestPrice(String.valueOf(e.getHighestPrice()))
-                    .setLowestPrice(String.valueOf(e.getLowestPrice())).setAddedTime(DateUtil.getDateTime(e.getAddedTime()))
-                    .setShelfTime(DateUtil.getDateTime(e.getShelfTime()));
+                    .setLowestPrice(String.valueOf(e.getLowestPrice()))
+                    .setAddedTime(Objects.isNull(e.getAddedTime()) ? null : DateUtil.getDateTime(e.getAddedTime()))
+                    .setAddedTime(Objects.isNull(e.getShelfTime()) ? null : DateUtil.getDateTime(e.getShelfTime()));
             list.add(export);
         });
         try {

+ 46 - 0
sckw-modules/sckw-product/src/main/resources/mapper/KwpGoodsMapper.xml

@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sckw.product.dao.KwpGoodsMapper">
+
+
+    <select id="getGoodsLists" resultType="com.sckw.product.model.KwpGoods">
+        select
+        id, ent_id,supply_ent_id,code,name, type_id, amount, unit, spec, tax_rate, trading, advance_price, manager,
+        performed_amount,thumb,added_time,shelf_time,remark,status, create_by, create_time, update_by, update_time,del_flag
+        from kwp_goods
+        <where>
+            del_flag = 0 and ent_id = #{entId}
+            <if test="queryParam.keywords != null and queryParam.keywords != ''">
+                and name LIKE concat('%',#{queryParam.keywords},'%')
+            </if>
+            <if test="queryParam.startCreateTime != null ">
+                and create_time &gt;= #{queryParam.startCreateTime}
+            </if>
+            <if test="queryParam.endCreateTime != null ">
+                and create_time &lt;= #{queryParam.endCreateTime}
+            </if>
+            <if test="queryParam.status != null and queryParam.status.size() > 0 ">
+                and status in
+                <foreach item="item" index="index" collection="#{queryParam.status}" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="queryParam.typeIds != null and queryParam.typeIds.size() > 0 ">
+                and typeId in
+                <foreach item="item" index="index" collection="#{queryParam.typeIds}" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="queryParam.tradings != null and queryParam.tradings.size() > 0 ">
+                and trading in
+                <foreach item="item" index="index" collection="#{queryParam.tradings}" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+
+        </where>
+        ORDER BY create_time desc
+
+
+    </select>
+</mapper>