Преглед на файлове

贸易订单列表查询、统计、导出

yzc преди 2 години
родител
ревизия
79e6466e7d
променени са 14 файла, в които са добавени 628 реда и са изтрити 56 реда
  1. 13 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictEnum.java
  2. 2 2
      sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwTradeOrder.java
  3. 0 23
      sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTradeOrderController.java
  4. 2 13
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java
  5. 1 1
      sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java
  6. 4 0
      sckw-modules/sckw-report/pom.xml
  7. 62 4
      sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwOrderController.java
  8. 191 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java
  9. 78 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/SpringDataPageAble.java
  10. 95 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderListExport.java
  11. 2 2
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderListExportParam.java
  12. 2 2
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderListSelectParam.java
  13. 14 9
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderListStatisticParam.java
  14. 162 0
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/OrderListRes.java

+ 13 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/DictEnum.java

@@ -3,6 +3,10 @@ package com.sckw.core.common.enums.enums;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+
 /**
  * @author lfdc
  * @description 枚举字典
@@ -60,5 +64,14 @@ public enum DictEnum {
         }
         return null;
     }
+    public static List<DictEnum> getEnumsByType(String type) {
+        List<DictEnum> list = new ArrayList<>();
+        for (DictEnum dict : DictEnum.values()) {
+            if (dict.getType().equals(type) ) {
+                list.add(dict);
+            }
+        }
+        return list.stream().sorted(Comparator.comparing(DictEnum::getValue)).toList();
+    }
 
 }

+ 2 - 2
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwTradeOrder.java

@@ -251,7 +251,7 @@ public class SckwTradeOrder {
     /**
      * 装货所在地区
      */
-    private Integer loadCityCode;
+    private String loadCityCode;
 
     /**
      * 装货所属区域名称
@@ -296,7 +296,7 @@ public class SckwTradeOrder {
     /**
      * 卸货所在地区
      */
-    private Integer unloadCityCode;
+    private String unloadCityCode;
 
     /**
      * 卸货所属区域名称

+ 0 - 23
sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTradeOrderController.java

@@ -147,29 +147,6 @@ public class KwoTradeOrderController {
         return HttpResult.ok("订单完结成功");
     }
 
-    /**
-     * @desc: 分页查询
-     * @author: yzc
-     * @date: 2023-07-12 17:31
-     * @Param completeOrderParam:
-     * @return: com.sckw.core.web.response.HttpResult
-     */
-    @PostMapping(value = "/select", produces = MediaType.APPLICATION_JSON_VALUE)
-    public HttpResult select(@RequestBody @Validated OrderListSelectParam orderListSelectParam) {
-        return HttpResult.ok(kwoTradeOrderService.select(orderListSelectParam));
-    }
-
-    /**
-     * @desc: 订单统计
-     * @author: yzc
-     * @date: 2023-07-12 17:31
-     * @Param completeOrderParam:
-     * @return: com.sckw.core.web.response.HttpResult
-     */
-    @PostMapping(value = "/statistic", produces = MediaType.APPLICATION_JSON_VALUE)
-    public HttpResult statistic(@RequestBody @Validated OrderListStatisticParam orderListStatisticParam) {
-        return HttpResult.ok(kwoTradeOrderService.statistic(orderListStatisticParam));
-    }
 
     /**
      * @desc: 订单列表导出

+ 2 - 13
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sckw.core.common.enums.enums.DictEnum;
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.constant.Global;
-import com.sckw.core.model.vo.TableStatisticRes;
 import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.OrderGenerateUtils;
@@ -17,7 +16,6 @@ import com.sckw.order.dao.KwoTradeOrderMapper;
 import com.sckw.order.model.*;
 import com.sckw.order.model.vo.req.*;
 import com.sckw.order.model.vo.res.OrderDetailRes;
-import com.sckw.order.model.vo.res.OrderListRes;
 import com.sckw.product.api.dubbo.GoodsInfoService;
 import com.sckw.product.api.model.KwpGoods;
 import com.sckw.stream.model.SckwBusSum;
@@ -142,11 +140,11 @@ public class KwoTradeOrderService {
                 list.add(address);
                 if (Objects.equals(e.getAddressType(), DictEnum.TORDER_ADDRESS_TYPE_1.getValue())) {
                     order.setLoadName(e.getName()).setLoadType(e.getType()).setLoadContacts(e.getContacts())
-                            .setLoadPhone(e.getPhone()).setLoadCityCode(e.getCityCode()).setLoadCityName(e.getCityName())
+                            .setLoadPhone(e.getPhone()).setLoadCityCode(String.valueOf(e.getCityCode())).setLoadCityName(e.getCityName())
                             .setLoadDetailAddress(e.getDetailAddress()).setLoadLat(e.getLat()).setLoadLng(e.getLng());
                 } else {
                     order.setUnloadName(e.getName()).setUnloadType(e.getType()).setUnloadContacts(e.getContacts())
-                            .setUnloadPhone(e.getPhone()).setUnloadCityCode(e.getCityCode()).setUnloadCityName(e.getCityName())
+                            .setUnloadPhone(e.getPhone()).setUnloadCityCode(String.valueOf(e.getCityCode())).setUnloadCityName(e.getCityName())
                             .setUnloadDetailAddress(e.getDetailAddress()).setUnloadLat(e.getLat()).setUnloadLng(e.getLng());
                 }
             });
@@ -607,15 +605,6 @@ public class KwoTradeOrderService {
     }
 
 
-    public List<OrderListRes> select(OrderListSelectParam param) {
-        return null;
-    }
-
-    public TableStatisticRes statistic(OrderListStatisticParam param) {
-        return null;
-    }
-
-
     public void export(CompleteOrderParam param) {
 
     }

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

@@ -433,7 +433,7 @@ public class KwpGoodsService {
      * @author: yzc
      * @date: 2023-07-05 17:55
      * @Param params:
-     * @return: com.sckw.core.model.vo.TableRes
+     * @return: com.sckw.core.model.vo.TableStatisticRes
      */
     public TableStatisticRes statistic(GoodsListParam params) {
         TableStatisticRes res = new TableStatisticRes();

+ 4 - 0
sckw-modules/sckw-report/pom.xml

@@ -87,6 +87,10 @@
             <artifactId>spring-boot-starter-test</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>jakarta.validation</groupId>
+            <artifactId>jakarta.validation-api</artifactId>
+        </dependency>
     </dependencies>
     <build>
         <plugins>

+ 62 - 4
sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwOrderController.java

@@ -1,12 +1,21 @@
 package com.sckw.report.controller;
 
+import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.web.response.HttpResult;
+import com.sckw.excel.easyexcel.RequestHolder;
+import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.report.service.KwOrderService;
+import com.sckw.report.service.param.TradeOrderListExport;
+import com.sckw.report.service.param.TradeOrderListExportParam;
+import com.sckw.report.service.param.TradeOrderListSelectParam;
+import com.sckw.report.service.param.TradeOrderListStatisticParam;
+import jakarta.servlet.http.HttpServletResponse;
 import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.http.MediaType;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * @author zk
@@ -20,9 +29,58 @@ public class KwOrderController {
 
     private final KwOrderService orderService;
 
+    /**
+     * @desc: 贸易订单详情
+     * @author: yzc
+     * @date: 2023-07-17 10:29
+     * @Param id:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
     @GetMapping("/tradeOrderDetail")
     public HttpResult detail(@RequestParam Long id) {
         return HttpResult.ok(orderService.tradeOrderDetail(id));
     }
 
+    /**
+     * @desc: 贸易订单列表分页查询
+     * @author: yzc
+     * @date: 2023-07-17 10:29
+     * @Param params:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/tradeOrderSelect", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult select(@RequestBody @Validated TradeOrderListSelectParam params) {
+        return HttpResult.ok(orderService.tradeOrderSelect(params));
+    }
+
+    /**
+     * @desc: 贸易订单列表统计查询
+     * @author: yzc
+     * @date: 2023-07-17 10:29
+     * @Param params:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/tradeOrderStatistic", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult statistic(@RequestBody @Validated TradeOrderListStatisticParam params) {
+        return HttpResult.ok(orderService.tradeOrderStatistic(params));
+    }
+
+    /**
+     * @desc: 贸易订单列表导出
+     * @author: yzc
+     * @date: 2023-07-17 10:29
+     * @Param params:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/tradeOrderExport", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult export(@RequestBody TradeOrderListExportParam params) {
+        HttpServletResponse response = RequestHolder.getResponse();
+        List<TradeOrderListExport> list = orderService.export(params);
+        if (CollectionUtils.isNotEmpty(list)) {
+            ExcelUtil.download(response, TradeOrderListExport.class, list);
+            return HttpResult.ok();
+        }
+        return HttpResult.error("没有可导出的数据");
+    }
+
 }

+ 191 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java

@@ -1,15 +1,32 @@
 package com.sckw.report.service;
 
+import com.sckw.core.common.enums.enums.DictEnum;
+import com.sckw.core.common.enums.enums.DictTypeEnum;
+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;
+import com.sckw.core.utils.BeanUtils;
+import com.sckw.core.utils.CollectionUtils;
+import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.context.LoginUserHolder;
+import com.sckw.excel.utils.DateUtil;
 import com.sckw.mongo.model.SckwTradeOrder;
 import com.sckw.report.dao.SckwTradeOrderRepository;
+import com.sckw.report.service.param.*;
+import com.sckw.report.service.vo.OrderListRes;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.domain.Sort;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
+import java.util.*;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
 /**
  * @author zk
  * @desc 订单服务
@@ -41,4 +58,178 @@ public class KwOrderService {
         SckwTradeOrder tradeOrder = mongoTemplate.findOne(query, SckwTradeOrder.class);
         return mongoTemplate.findOne(query, SckwTradeOrder.class);
     }
+
+    /**
+     * @desc: 贸易订单列表分页查询
+     * @author: yzc
+     * @date: 2023-07-17 18:04
+     * @Param params:
+     * @return: com.sckw.core.model.page.PageResult
+     */
+    public PageResult tradeOrderSelect(TradeOrderListSelectParam params) {
+        Query query = getQuery(params);
+        long count = mongoTemplate.count(query, SckwTradeOrder.class);
+        Sort sort = Sort.by(Sort.Direction.DESC, "createTime");
+        SpringDataPageAble pageAble = new SpringDataPageAble(params.getPage(), params.getPageSize(), sort);
+        query.with(pageAble);
+        List<SckwTradeOrder> list = mongoTemplate.find(query, SckwTradeOrder.class);
+        List<OrderListRes> result = new ArrayList<>();
+        list.forEach(e -> {
+            OrderListRes order = BeanUtils.copyProperties(e, OrderListRes.class);
+                    order.setStatus(DictEnum.getLabel(DictTypeEnum.TORDER_STATUS.getType(), String.valueOf(e.getStatus())))
+                            .setTrading(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
+                            .setDeliveryType(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), e.getDeliveryType()))
+                            .setPickupType(DictEnum.getLabel(DictTypeEnum.PICKUP_TYPE.getType(), e.getPickupType()))
+                            .setConsignmentStatus(Objects.equals(e.getAmount(), e.getEntrustAmount()) ? "待托运" : "已托运")
+                            .setSource(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()));
+        });
+        return PageResult.build(params.getPage(), params.getPageSize(), count, result);
+    }
+
+    /**
+     * @desc: 组装query
+     * @author: yzc
+     * @date: 2023-07-17 18:08
+     * @Param params:
+     * @return: org.springframework.data.mongodb.core.query.Query
+     */
+    private Query getQuery(TradeOrderListStatisticParam params) {
+        Long entId = LoginUserHolder.getEntId();
+        Query query = new Query();
+        Criteria criteria = new Criteria();
+        criteria.and("delFlag").is(0);
+        //销售订单
+        if (Objects.equals(params.getOrderType(), 1)) {
+            criteria.and("supplyTopEntId").is(entId);
+        } else {
+            //采购订单
+            criteria.and("procureTopEntId").is(entId);
+        }
+        //交易方式
+        if (CollectionUtils.isNotEmpty(params.getTradings())) {
+            criteria.and("trading").in(params.getTradings());
+        }
+        //提货方式
+        if (CollectionUtils.isNotEmpty(params.getPickupTypes())) {
+            criteria.and("pickupType").in(params.getPickupTypes());
+        }
+        //交付类型
+        if (CollectionUtils.isNotEmpty(params.getDeliveryTypes())) {
+            criteria.and("deliveryType").in(params.getDeliveryTypes());
+        }
+        //下单方式
+        if (CollectionUtils.isNotEmpty(params.getSources())) {
+            criteria.and("source").in(params.getSources());
+        }
+        //日期范围
+        if (Objects.nonNull(params.getStartCreateTime()) && Objects.nonNull(params.getEndCreateTime())) {
+            criteria.andOperator(Criteria.where("createTime").gte(params.getStartCreateTime()), Criteria.where("createTime")
+                    .lte(params.getEndCreateTime()));
+        } else if (Objects.nonNull(params.getStartCreateTime())) {
+            criteria.and("createTime").gte(params.getStartCreateTime());
+        } else if (Objects.nonNull(params.getEndCreateTime())) {
+            criteria.and("createTime").lte(params.getEndCreateTime());
+        }
+        List<Criteria> orCriteriaList = new ArrayList<>();
+        //关键字模糊匹配
+        if (StringUtils.isNotBlank(params.getKeywords())) {
+            Pattern pattern = Pattern.compile("^.*" + params.getKeywords() + ".*$", Pattern.CASE_INSENSITIVE);
+            orCriteriaList.add(Criteria.where("tOrderNo").regex(pattern));
+            orCriteriaList.add(Criteria.where("procureFirmName").regex(pattern));
+            orCriteriaList.add(Criteria.where("supplyFirmName").regex(pattern));
+            orCriteriaList.add(Criteria.where("goodsName").regex(pattern));
+        }
+        //装卸货地址
+        if (CollectionUtils.isNotEmpty(params.getShippingAddressCodes())) {
+            params.getShippingAddressCodes().forEach(c -> {
+                Pattern pattern = Pattern.compile("^" + c.substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE);
+                orCriteriaList.add(Criteria.where("loadCityCode").regex(pattern));
+            });
+        }
+        if (CollectionUtils.isNotEmpty(params.getUnloadingAddressCodes())) {
+            params.getUnloadingAddressCodes().forEach(c -> {
+                Pattern pattern = Pattern.compile("^" + c.substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE);
+                orCriteriaList.add(Criteria.where("unloadCityCode").regex(pattern));
+            });
+        }
+        if (CollectionUtils.isNotEmpty(orCriteriaList)) {
+            criteria.orOperator(orCriteriaList);
+        }
+        return query.addCriteria(criteria);
+    }
+
+    /**
+     * @desc: 贸易订单列表统计查询
+     * @author: yzc
+     * @date: 2023-07-17 18:05
+     * @Param params:
+     * @return: com.sckw.core.model.vo.TableStatisticRes
+     */
+    public TableStatisticRes tradeOrderStatistic(TradeOrderListStatisticParam params) {
+        TableStatisticRes res = new TableStatisticRes();
+        Query query = getQuery(params);
+        List<SckwTradeOrder> orders = mongoTemplate.find(query, SckwTradeOrder.class);
+        Map<Integer, List<SckwTradeOrder>> map = orders.stream().collect(Collectors.groupingBy(SckwTradeOrder::getStatus));
+        List<TableTop> tableTops = new ArrayList<>();
+        List<DictEnum> tOrderStatusEnums = DictEnum.getEnumsByType(DictTypeEnum.TORDER_STATUS.getType());
+        tOrderStatusEnums.forEach(e -> {
+            Integer value = Integer.valueOf(e.getValue());
+            List<SckwTradeOrder> list = map.get(value);
+            int total = CollectionUtils.isEmpty(list) ? 0 : list.size();
+            TableTop tableTop = new TableTop();
+            tableTop.setName(e.getLabel()).setValue(value).setTotal(total);
+            tableTops.add(tableTop);
+        });
+        TableBottom tableBottom = new TableBottom();
+        tableBottom.setTotal(CollectionUtils.isEmpty(orders) ? 0 : orders.size());
+        res.setTableTops(tableTops).setTableBottom(tableBottom);
+        return res;
+    }
+
+    /**
+     * @desc: 贸易订单列表导出
+     * @author: yzc
+     * @date: 2023-07-17 18:05
+     * @Param params:
+     * @return: java.util.List<com.sckw.report.service.param.TradeOrderListExport>
+     */
+
+    public List<TradeOrderListExport> export(TradeOrderListExportParam params) {
+        Query query = new Query();
+        if (CollectionUtils.isNotEmpty(params.getIds())) {
+            Long entId = LoginUserHolder.getEntId();
+            Criteria criteria = new Criteria();
+            criteria.and("tOrderId").in(params.getIds()).and("delFlag").is(0);
+            query.addCriteria(criteria);
+            //销售订单
+            if (Objects.equals(params.getOrderType(), 1)) {
+                criteria.and("supplyTopEntId").is(entId);
+            } else {
+                //采购订单
+                criteria.and("procureTopEntId").is(entId);
+            }
+        } else {
+            query = getQuery(params);
+        }
+        List<SckwTradeOrder> orders = mongoTemplate.find(query, SckwTradeOrder.class);
+        if (CollectionUtils.isEmpty(orders)) {
+            return Collections.emptyList();
+        }
+        List<TradeOrderListExport> list = new ArrayList<>();
+        orders.forEach(e -> {
+            TradeOrderListExport export = BeanUtils.copyProperties(e, TradeOrderListExport.class);
+            export.setStatus(DictEnum.getLabel(DictTypeEnum.TORDER_STATUS.getType(), String.valueOf(e.getStatus())))
+                    .setTrading(DictEnum.getLabel(DictTypeEnum.TRADE_TYPE.getType(), e.getTrading()))
+                    .setDeliveryType(DictEnum.getLabel(DictTypeEnum.DELIVERY_TYPE.getType(), e.getDeliveryType()))
+                    .setPickupType(DictEnum.getLabel(DictTypeEnum.PICKUP_TYPE.getType(), e.getPickupType()))
+                    .setConsignmentStatus(Objects.equals(e.getAmount(), e.getEntrustAmount()) ? "待托运" : "已托运")
+                    .setSource(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()))
+                    .setUnitPrice(String.valueOf(e.getUnitPrice())).setPrice(String.valueOf(e.getPrice()))
+                    .setAmount(String.valueOf(e.getAmount())).setActualAmount(String.valueOf(e.getActualAmount()))
+                    .setStartTime(Objects.isNull(e.getStartTime()) ? null : DateUtil.dateToStr(e.getStartTime()))
+                    .setAddedTime(Objects.isNull(e.getEndTime()) ? null : DateUtil.dateToStr(e.getEndTime()));
+            list.add(export);
+        });
+        return list;
+    }
 }

+ 78 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/SpringDataPageAble.java

@@ -0,0 +1,78 @@
+package com.sckw.report.service.param;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
+
+/**
+ * @author yzc
+ * @desc 分页请求参数
+ * @date 2023/7/17 0010
+ */
+@NoArgsConstructor
+@AllArgsConstructor
+@Getter
+@Setter
+public class SpringDataPageAble implements Pageable {
+
+    private Integer pageNumber = 1;
+    private Integer pageSize = 10;
+    private Sort sort;
+
+    public void setSort(Sort sort) {
+        this.sort = sort;
+    }
+
+    // 当前页面
+    @Override
+    public int getPageNumber() {
+        return this.pageNumber;
+    }
+
+    // 每一页显示的条数
+
+    @Override
+    public int getPageSize() {
+        return this.pageSize;
+    }
+
+    // 第二页所需要增加的数量
+
+    @Override
+    public long getOffset() {
+        return (long) (getPageNumber() - 1) * getPageSize();
+    }
+
+    @Override
+    public Sort getSort() {
+        return sort;
+    }
+
+    @Override
+    public Pageable next() {
+        return null;
+    }
+
+    @Override
+    public Pageable previousOrFirst() {
+        return null;
+    }
+
+    @Override
+    public Pageable first() {
+        return null;
+    }
+
+    @Override
+    public Pageable withPage(int pageNumber) {
+        return null;
+    }
+
+    @Override
+    public boolean hasPrevious() {
+        return false;
+    }
+}

+ 95 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderListExport.java

@@ -0,0 +1,95 @@
+package com.sckw.report.service.param;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.sckw.excel.annotation.ExcelContext;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * @desc: 交易列表信息导出对象
+ * @author: yzc
+ * @date: 2023-07-17 10:36
+ */
+@Data
+@Accessors(chain = true)
+@ExcelContext(fileName = "交易列表信息", sheetName = "交易列表信息")
+public class TradeOrderListExport {
+    @ExcelProperty(value = "上架状态", index = 0)
+    private String status;
+
+    @ExcelProperty(value = "订单编号", index = 1)
+    private String tOrderNo;
+
+    @ExcelProperty(value = "采购单位", index = 2)
+    private String procureFirmName;
+
+    @ExcelProperty(value = "销售单位", index = 3)
+    private String supplyFirmName;
+
+    @ExcelProperty(value = "交付类型", index = 4)
+    private String deliveryType;
+
+    @ExcelProperty(value = "提货方式", index = 5)
+    private String pickupType;
+
+    @ExcelProperty(value = "托运状态", index = 6)
+    private String consignmentStatus;
+
+    @ExcelProperty(value = "下单方式", index = 7)
+    private String source;
+
+    @ExcelProperty(value = "付款类型", index = 8)
+    private String trading;
+
+    @ExcelProperty(value = "关联合同", index = 9)
+    private String contractNo;
+
+    @ExcelProperty(value = "承包方式", index = 10)
+    private String contractSigningWay;
+
+    @ExcelProperty(value = "商品名称", index = 11)
+    private String manageName;
+
+    @ExcelProperty(value = "规格", index = 12)
+    private String goodsSpec;
+
+    @ExcelProperty(value = "上架时间", index = 13)
+    private String addedTime;
+
+    @ExcelProperty(value = "单价/元", index = 14)
+    private String unitPrice;
+
+    @ExcelProperty(value = "订单金额", index = 15)
+    private String price;
+
+    @ExcelProperty(value = "订单目标", index = 16)
+    private String amount;
+
+    @ExcelProperty(value = "已履约量", index = 17)
+    private String actualAmount;
+
+    @ExcelProperty(value = "归属项目", index = 14)
+    private String projectName;
+
+    @ExcelProperty(value = "装货地点", index = 15)
+    private String loadCityName;
+
+    @ExcelProperty(value = "卸货地点", index = 16)
+    private String unloadCityName;
+
+    @ExcelProperty(value = "计划开始时间", index = 17)
+    private String startTime;
+
+    @ExcelProperty(value = "计划结束时间", index = 17)
+    private String endTime;
+
+    @ExcelProperty(value = "备注", index = 14)
+    private String remark;
+
+    @ExcelProperty(value = "创造人", index = 15)
+    private String creatByName;
+
+    @ExcelProperty(value = "创建时间", index = 16)
+    private String createTime;
+
+}

+ 2 - 2
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/OrderListExportParam.java → sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderListExportParam.java

@@ -1,4 +1,4 @@
-package com.sckw.order.model.vo.req;
+package com.sckw.report.service.param;
 
 import lombok.Getter;
 import lombok.Setter;
@@ -14,7 +14,7 @@ import java.util.List;
 @Getter
 @Setter
 @ToString
-public class OrderListExportParam extends OrderListStatisticParam {
+public class TradeOrderListExportParam extends TradeOrderListStatisticParam {
 
     /**
      * 订单id集合

+ 2 - 2
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/OrderListSelectParam.java → sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderListSelectParam.java

@@ -1,4 +1,4 @@
-package com.sckw.order.model.vo.req;
+package com.sckw.report.service.param;
 
 import lombok.Getter;
 import lombok.Setter;
@@ -12,7 +12,7 @@ import lombok.ToString;
 @Getter
 @Setter
 @ToString
-public class OrderListSelectParam extends OrderListStatisticParam {
+public class TradeOrderListSelectParam extends TradeOrderListStatisticParam {
 
     /**
      * 当前页码

+ 14 - 9
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/OrderListStatisticParam.java → sckw-modules/sckw-report/src/main/java/com/sckw/report/service/param/TradeOrderListStatisticParam.java

@@ -1,6 +1,9 @@
-package com.sckw.order.model.vo.req;
+package com.sckw.report.service.param;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
@@ -16,13 +19,15 @@ import java.util.List;
 @Getter
 @Setter
 @ToString
-public class OrderListStatisticParam {
+public class TradeOrderListStatisticParam {
 
     /**
      * 订单类型(1销售订单、2采购订单)
      */
+    @Min(value = 1, message = "非法订单类型")
+    @Max(value = 2, message = "非法订单类型")
+    @NotNull(message = "订单类型不能为空")
     private Integer orderType;
-
     /**
      * 订单编号、单位、商品名称(模糊匹配共用)
      */
@@ -30,24 +35,24 @@ public class OrderListStatisticParam {
     /**
      * 创建时间开始(yyyy-MM-dd)
      */
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date startCreateTime;
 
     /**
      * 创建时间结束(yyyy-MM-dd)
      */
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date endCreateTime;
 
     /**
-     * 装货地址id集合
+     * 装货地址code集合
      */
-    private List<Long> shippingAddressIds;
+    private List<String> shippingAddressCodes;
 
     /**
-     * 装货地址id集合
+     * 装货地址code集合
      */
-    private List<Long> unloadingAddressIds;
+    private List<String> unloadingAddressCodes;
 
     /**
      * 交易方式(预付款、货到付款)集合

+ 162 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/vo/OrderListRes.java

@@ -0,0 +1,162 @@
+package com.sckw.report.service.vo;
+
+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.time.LocalDate;
+import java.util.Date;
+
+/**
+ * @desc: 订单列表响应参数
+ * @author: yzc
+ * @date: 2023-07-12 17:45
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+public class OrderListRes {
+
+    /**
+     * 订单id
+     */
+    private Long tOrderId;
+    /**
+     * 订单状态
+     */
+    private String status;
+    /**
+     * 订单编号
+     */
+    private String tOrderNo;
+    /**
+     * 采购企业主键ID
+     */
+    private Long procureEntId;
+
+    /**
+     * 采购单位
+     */
+    private String procureFirmName;
+
+    /**
+     * 销售单位主键ID
+     */
+    private Long supplyEntId;
+    /**
+     * 销售单位
+     */
+    private String supplyFirmName;
+    /**
+     * 交易方式(预付款、货到付款)
+     */
+    private String trading;
+    /**
+     * 交付类型(签发交付、签收交付)
+     */
+    private String deliveryType;
+    /**
+     * 提货方式(采方自提、供应配送)
+     */
+    private String pickupType;
+    /**
+     * 托运状态
+     */
+    private String consignmentStatus;
+    /**
+     * 下单方式(自主下单/代客下单)
+     */
+    private String source;
+
+    /**
+     * 合同主键
+     */
+    private Long contractId;
+
+    /**
+     * 合同编号
+     */
+    private String contractNo;
+
+    /**
+     * 合同mc
+     */
+    private String contractName;
+
+    /**
+     * 合同签约方式
+     */
+    private String contractSigningWay;
+    /**
+     * 商品id
+     */
+    private Long goodsId;
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+    /**
+     * 单位(吨、方、箱、件)
+     */
+    private String goodsSpec;
+    /**
+     * 订单成交单价
+     */
+    private BigDecimal unitPrice;
+    /**
+     * 订单金额
+     */
+    private BigDecimal price;
+
+    /**
+     * 订单总量
+     */
+    private BigDecimal amount;
+    /**
+     * 已委托量
+     */
+    private BigDecimal entrustAmount;
+    /**
+     * 实际交付量
+     */
+    private BigDecimal actualAmount;
+    /**
+     * 归属项目
+     */
+    private String projectName;
+    /**
+     * 装货地点
+     */
+    private String loadCityName;
+    /**
+     * 卸货地点
+     */
+    private String unloadCityName;
+    /**
+     * 计划开始时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate startTime;
+    /**
+     * 计划结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate endTime;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 创建人
+     */
+    private String creatByName;
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+}