Prechádzať zdrojové kódy

新增运营端订单列表、统计、导出、合同关联订单列表接口

yzc 2 rokov pred
rodič
commit
65e50b3b58

+ 90 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/operator/TradeOrderManageController.java

@@ -0,0 +1,90 @@
+package com.sckw.report.controller.operator;
+
+import com.sckw.core.exception.BusinessException;
+import com.sckw.core.utils.CollectionUtils;
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.excel.utils.ExcelUtil;
+import com.sckw.report.model.vo.OperatorTOrderContractParam;
+import com.sckw.report.model.vo.OperatorTOrderExportQueryVO;
+import com.sckw.report.model.vo.OperatorTOrderListQueryVO;
+import com.sckw.report.model.vo.OperatorTOrderStsQueryVO;
+import com.sckw.report.service.operator.TradeOrderManageService;
+import com.sckw.report.service.param.TradeOrderListExport;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.AllArgsConstructor;
+import org.springframework.http.MediaType;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @desc: 运营端贸易订单管理相关接口
+ * @author: yzc
+ * @date: 2023-09-14 11:21
+ */
+@AllArgsConstructor
+@RestController
+@RequestMapping("/tradeOrderManage")
+public class TradeOrderManageController {
+
+    private final TradeOrderManageService tradeOrderManageService;
+
+
+    /**
+     * @desc: 贸易订单列表分页查询
+     * @author: yzc
+     * @date: 2023-07-17 10:29
+     * @Param params:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/listPaging", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult listPaging(@RequestBody @Validated OperatorTOrderListQueryVO params) {
+        return HttpResult.ok(tradeOrderManageService.listPaging(params));
+    }
+
+    /**
+     * @desc: 贸易订单列表统计查询
+     * @author: yzc
+     * @date: 2023-07-17 10:29
+     * @Param params:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/listStatistic", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult listStatistic(@RequestBody @Validated OperatorTOrderStsQueryVO params) {
+        return HttpResult.ok(tradeOrderManageService.listStatistic(params));
+    }
+
+    /**
+     * @desc: 贸易订单列表导出
+     * @author: yzc
+     * @date: 2023-09-14 14:40
+     * @Param params:
+     * @Param response:
+     * @return: void
+     */
+    @PostMapping(value = "/listExport", produces = MediaType.APPLICATION_JSON_VALUE)
+    public void listExport(@RequestBody @Validated OperatorTOrderExportQueryVO params, HttpServletResponse response) {
+        List<TradeOrderListExport> list = tradeOrderManageService.export(params);
+        if (CollectionUtils.isEmpty(list)) {
+            throw new BusinessException("导出数据为空!");
+        }
+        ExcelUtil.downData(response, TradeOrderListExport.class, list);
+    }
+
+    /**
+     * @desc: 合同关联订单列表
+     * @author: yzc
+     * @date: 2023-09-14 14:51
+     * @Param params:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/contractAssociationList", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult contractAssociationList(@RequestBody @Validated OperatorTOrderContractParam params) {
+        return HttpResult.ok(tradeOrderManageService.contractAssociationList(params));
+    }
+
+}

+ 86 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/model/dto/OperatorTOrderListStsConditionDTO.java

@@ -0,0 +1,86 @@
+package com.sckw.report.model.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @desc: 运营端贸易订单列表统计查询条件dto
+ * @author: yzc
+ * @date: 2023-09-14 11:33
+ */
+@Getter
+@Setter
+@ToString
+public class OperatorTOrderListStsConditionDTO implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1352493248166762988L;
+
+
+    /**
+     * 订单编号、单位、商品名称(模糊匹配共用)
+     */
+    private String keywords;
+    /**
+     * 创建时间开始(yyyy-MM-dd HH:mm:ss)
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startCreateTime;
+
+    /**
+     * 创建时间结束(yyyy-MM-dd HH:mm:ss)
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endCreateTime;
+
+    /**
+     * 装货地址code
+     */
+    private String shippingAddressCode;
+
+    /**
+     * 装货地址等级
+     */
+    private Integer shippingAddressLevel;
+
+    /**
+     * 装货地址code
+     */
+    private String unloadingAddressCode;
+
+    /**
+     * 卸货地址等级
+     */
+    private Integer unloadingAddressLevel;
+
+    /**
+     * 交易方式(预付款、货到付款)
+     */
+    private String trading;
+
+    /**
+     * 提货方式(采方自提、供应配送)
+     */
+    private String pickupType;
+
+    /**
+     * 交付类型(签发交付、签收交付)
+     */
+    private String deliveryType;
+
+    /**
+     * 下单方式(1采购下单/2代客下单)
+     */
+    private String source;
+
+    /**
+     * 订单状态
+     */
+    private Integer status;
+
+}

+ 22 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/model/vo/OperatorTOrderContractParam.java

@@ -0,0 +1,22 @@
+package com.sckw.report.model.vo;
+
+import com.sckw.core.model.page.PageRequest;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+/**
+ * @desc: 合同关联订单列表请求参数
+ * @author: yzc
+ * @date: 2023-07-27 16:48
+ */
+@Getter
+@Setter
+@ToString
+public class OperatorTOrderContractParam extends PageRequest {
+
+    @NotBlank(message = "合同ids不能为空")
+    private String contractIds;
+
+}

+ 35 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/model/vo/OperatorTOrderExportQueryVO.java

@@ -0,0 +1,35 @@
+package com.sckw.report.model.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import org.hibernate.validator.constraints.Range;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @desc: 运营端贸易订单列表导出查询参数vo
+ * @author: yzc
+ * @date: 2023-09-14 11:33
+ */
+@Getter
+@Setter
+@ToString
+public class OperatorTOrderExportQueryVO extends OperatorTOrderStsQueryVO implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 3904961009951552659L;
+
+    /**
+     * 订单状态
+     */
+    @Range(min = 1, max = 7, message = "非法订单状态")
+    private Integer status;
+
+    /**
+     * 订单ids
+     */
+    private String ids;
+
+}

+ 39 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/model/vo/OperatorTOrderListQueryVO.java

@@ -0,0 +1,39 @@
+package com.sckw.report.model.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import org.hibernate.validator.constraints.Range;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @desc: 运营端贸易订单列表分页查询参数vo
+ * @author: yzc
+ * @date: 2023-09-14 11:33
+ */
+@Getter
+@Setter
+@ToString
+public class OperatorTOrderListQueryVO extends OperatorTOrderStsQueryVO implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 3904961009951552659L;
+
+    /**
+     * 当前页码
+     */
+    private int page = 1;
+    /**
+     * 每页数量
+     */
+    private int pageSize = 10;
+
+    /**
+     * 订单状态
+     */
+    @Range(min = 1, max = 7, message = "非法订单状态")
+    private Integer status;
+
+}

+ 81 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/model/vo/OperatorTOrderStsQueryVO.java

@@ -0,0 +1,81 @@
+package com.sckw.report.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @desc: 运营端贸易订单统计查询参数vo
+ * @author: yzc
+ * @date: 2023-09-14 11:33
+ */
+@Getter
+@Setter
+@ToString
+public class OperatorTOrderStsQueryVO implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1352493248166762988L;
+
+
+    /**
+     * 订单编号、单位、商品名称(模糊匹配共用)
+     */
+    private String keywords;
+    /**
+     * 创建时间开始(yyyy-MM-dd HH:mm:ss)
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startCreateTime;
+
+    /**
+     * 创建时间结束(yyyy-MM-dd HH:mm:ss)
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endCreateTime;
+
+    /**
+     * 装货地址code
+     */
+    private String shippingAddressCode;
+
+    /**
+     * 装货地址等级
+     */
+    private Integer shippingAddressLevel;
+
+    /**
+     * 装货地址code
+     */
+    private String unloadingAddressCode;
+
+    /**
+     * 卸货地址等级
+     */
+    private Integer unloadingAddressLevel;
+
+    /**
+     * 交易方式(预付款、货到付款)
+     */
+    private String trading;
+
+    /**
+     * 提货方式(采方自提、供应配送)
+     */
+    private String pickupType;
+
+    /**
+     * 交付类型(签发交付、签收交付)
+     */
+    private String deliveryType;
+
+    /**
+     * 下单方式(1采购下单/2代客下单)
+     */
+    private String source;
+
+}

+ 43 - 9
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java

@@ -81,7 +81,7 @@ public class KwOrderService {
      * @Param pageSize:
      * @return: com.sckw.core.model.page.PageResult
      */
-    private PageResult getResult(Criteria criteria, int page, int pageSize) {
+    public PageResult getResult(Criteria criteria, Integer page, Integer pageSize) {
         Query query = new Query();
         query.addCriteria(criteria);
         long count = mongoTemplate.count(query, SckwTradeOrder.class);
@@ -254,8 +254,20 @@ public class KwOrderService {
      * @return: com.sckw.core.model.vo.TableStatisticRes
      */
     public TableStatisticRes tradeOrderStatistic(TradeOrderListStatisticParam params) {
-        TableStatisticRes res = new TableStatisticRes();
         Criteria criteria = buildCriteria(params, true);
+        return getTableStatistic(criteria, DictEnum.getEnumsByType(DictTypeEnum.TORDER_STATUS.getType()));
+    }
+
+    /**
+     * @desc: 列表统计
+     * @author: yzc
+     * @date: 2023-09-14 14:18
+     * @Param criteria:
+     * @Param enums:
+     * @return: com.sckw.core.model.vo.TableStatisticRes
+     */
+    public TableStatisticRes getTableStatistic(Criteria criteria, List<DictEnum> enums) {
+        TableStatisticRes res = new TableStatisticRes();
         Aggregation aggregation = Aggregation.newAggregation(
                 Aggregation.match(criteria),
                 Aggregation.group("status").count().as("total"),
@@ -270,9 +282,8 @@ public class KwOrderService {
                     (TableTop::getValue, TableTop::getTotal, (k1, k2) -> k2));
         }
         List<TableTop> list = new ArrayList<>();
-        List<DictEnum> tOrderStatusEnums = DictEnum.getEnumsByType(DictTypeEnum.TORDER_STATUS.getType());
         int count = 0;
-        for (DictEnum e : tOrderStatusEnums) {
+        for (DictEnum e : enums) {
             Integer value = Integer.valueOf(e.getValue());
             int total = Objects.isNull(map.get(value)) ? 0 : map.get(value);
             TableTop tableTop = new TableTop();
@@ -282,7 +293,7 @@ public class KwOrderService {
         }
         TableTop all = new TableTop();
         all.setName("全部").setTotal(count);
-        list.add(all);
+        list.add(0, all);
         TableBottom tableBottom = new TableBottom();
         tableBottom.setTotal(count);
         res.setTableTops(list).setTableBottom(tableBottom);
@@ -334,7 +345,6 @@ public class KwOrderService {
      * @Param params:
      * @return: java.util.List<com.sckw.report.service.param.TradeOrderListExport>
      */
-
     public List<TradeOrderListExport> export(TradeOrderListExportParam params) {
         Query query = new Query();
         if (StringUtils.isNotBlank(params.getIds())) {
@@ -348,6 +358,17 @@ public class KwOrderService {
             query.addCriteria(buildCriteria(params, false));
         }
         query.with(Sort.by(Sort.Order.desc("createTime")));
+        return getExportResult(query);
+    }
+
+    /**
+     * @desc: 获取导出结果
+     * @author: yzc
+     * @date: 2023-09-14 14:41
+     * @Param query:
+     * @return: java.util.List<com.sckw.report.service.param.TradeOrderListExport>
+     */
+    public List<TradeOrderListExport> getExportResult(Query query) {
         List<SckwTradeOrder> orders = mongoTemplate.find(query, SckwTradeOrder.class);
         if (CollectionUtils.isEmpty(orders)) {
             return Collections.emptyList();
@@ -438,15 +459,28 @@ public class KwOrderService {
      */
     public PageResult tradeOrderContractList(TradeOrderContractParam params) {
         Long entId = LoginUserHolder.getEntId();
-        Query query = new Query();
         Criteria criteria = new Criteria();
         String topEnt = Objects.equals(params.getOrderType(), 1) ? "procureTopEntId" : "supplyTopEntId";
         List<Long> ids = StringUtils.splitStrToList(params.getContractIds(), ",", Long.class);
         criteria.and("contractId").in(ids).and(topEnt).is(entId).and("delFlag").is(0);
+        return getContractResult(criteria, params.getPage(), params.getPageSize());
+    }
+
+    /**
+     * @desc: 获取关联合同结果
+     * @author: yzc
+     * @date: 2023-09-14 14:58
+     * @Param criteria:
+     * @Param page:
+     * @Param pageSize:
+     * @return: com.sckw.core.model.page.PageResult
+     */
+    public PageResult getContractResult(Criteria criteria, Integer page, Integer pageSize) {
+        Query query = new Query();
         query.addCriteria(criteria);
         long count = mongoTemplate.count(query, SckwTradeOrder.class);
         Sort sort = Sort.by(Sort.Direction.DESC, "contractId", "createTime");
-        SpringDataPageAble pageAble = new SpringDataPageAble(params.getPage(), params.getPageSize(), sort);
+        SpringDataPageAble pageAble = new SpringDataPageAble(page, pageSize, sort);
         query.with(pageAble);
         List<SckwTradeOrder> list = mongoTemplate.find(query, SckwTradeOrder.class);
         List<OrderListRes> result = new ArrayList<>();
@@ -469,6 +503,6 @@ public class KwOrderService {
                     .setSourceLabel(DictEnum.getLabel(DictTypeEnum.TORDER_SOURCE.getType(), e.getSource()));
             result.add(order);
         });
-        return PageResult.build(params.getPage(), params.getPageSize(), count, result);
+        return PageResult.build(page, pageSize, count, result);
     }
 }

+ 177 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/operator/TradeOrderManageService.java

@@ -0,0 +1,177 @@
+package com.sckw.report.service.operator;
+
+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.TableStatisticRes;
+import com.sckw.core.utils.BeanUtils;
+import com.sckw.core.utils.StringUtils;
+import com.sckw.report.model.dto.OperatorTOrderListStsConditionDTO;
+import com.sckw.report.model.vo.OperatorTOrderContractParam;
+import com.sckw.report.model.vo.OperatorTOrderExportQueryVO;
+import com.sckw.report.model.vo.OperatorTOrderListQueryVO;
+import com.sckw.report.model.vo.OperatorTOrderStsQueryVO;
+import com.sckw.report.service.KwOrderService;
+import com.sckw.report.service.param.TradeOrderListExport;
+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.List;
+import java.util.Objects;
+import java.util.regex.Pattern;
+
+/**
+ * @desc: 运营端贸易订单管理相关service
+ * @author: yzc
+ * @date: 2023-09-14 11:23
+ */
+@Service
+@Slf4j
+@AllArgsConstructor
+public class TradeOrderManageService {
+
+    private final MongoTemplate mongoTemplate;
+
+    private final KwOrderService kwOrderService;
+
+
+    /**
+     * @desc: 贸易订单列表分页查询
+     * @author: yzc
+     * @date: 2023-09-14 14:24
+     * @Param params:
+     * @return: com.sckw.core.model.page.PageResult
+     */
+    public PageResult listPaging(OperatorTOrderListQueryVO params) {
+        Criteria criteria = buildCriteria(BeanUtils.copyProperties(params, OperatorTOrderListStsConditionDTO.class), false);
+        return kwOrderService.getResult(criteria, params.getPage(), params.getPageSize());
+    }
+
+    /**
+     * @desc: 贸易订单列表统计查询
+     * @author: yzc
+     * @date: 2023-09-14 14:22
+     * @Param params:
+     * @return: com.sckw.core.model.vo.TableStatisticRes
+     */
+    public TableStatisticRes listStatistic(OperatorTOrderStsQueryVO params) {
+        Criteria criteria = buildCriteria(BeanUtils.copyProperties(params, OperatorTOrderListStsConditionDTO.class), true);
+        List<DictEnum> enums = DictEnum.getEnumsByType(DictTypeEnum.TORDER_STATUS.getType());
+        enums.remove(0);
+        return kwOrderService.getTableStatistic(criteria, enums);
+    }
+
+    /**
+     * @desc: 贸易订单列表导出
+     * @author: yzc
+     * @date: 2023-09-14 14:40
+     * @Param params:
+     * @return: java.util.List<com.sckw.report.service.param.TradeOrderListExport>
+     */
+    public List<TradeOrderListExport> export(OperatorTOrderExportQueryVO params) {
+        Query query = new Query();
+        if (StringUtils.isNotBlank(params.getIds())) {
+            List<Long> ids = StringUtils.splitStrToList(params.getIds(), ",", Long.class);
+            Criteria criteria = new Criteria();
+            criteria.and("_id").in(ids).and("delFlag").is(0);
+            query.addCriteria(criteria);
+        } else {
+            query.addCriteria(buildCriteria(BeanUtils.copyProperties(params, OperatorTOrderListStsConditionDTO.class), false));
+        }
+        query.with(Sort.by(Sort.Order.desc("createTime")));
+        return kwOrderService.getExportResult(query);
+    }
+
+    /**
+     * @desc: 构建Criteria
+     * @author: yzc
+     * @date: 2023-09-14 14:25
+     * @Param params:
+     * @Param isStatistic:
+     * @return: org.springframework.data.mongodb.core.query.Criteria
+     */
+    private Criteria buildCriteria(OperatorTOrderListStsConditionDTO params, boolean isStatistic) {
+        Criteria condition = new Criteria();
+        condition.and("delFlag").is(0);
+        //状态
+        if (!isStatistic && Objects.nonNull(params.getStatus())) {
+            condition.and("status").is(params.getStatus());
+        } else {
+            condition.and("status").ne(0);
+        }
+        //装货地址
+        String loadCode = params.getShippingAddressCode();
+        if (StringUtils.isNotBlank(loadCode)) {
+            switch (params.getShippingAddressLevel()) {
+                case 1 -> condition.and("loadCityCode")
+                        .regex(Pattern.compile("^" + loadCode.substring(0, 2) + ".*$", Pattern.CASE_INSENSITIVE));
+                case 2 -> condition.and("loadCityCode")
+                        .regex(Pattern.compile("^" + loadCode.substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE));
+                case 3 -> condition.and("loadCityCode").is(loadCode);
+            }
+        }
+        //卸货地址
+        String unloadCode = params.getUnloadingAddressCode();
+        if (StringUtils.isNotBlank(unloadCode)) {
+            switch (params.getUnloadingAddressLevel()) {
+                case 1 -> condition.and("unloadCityCode")
+                        .regex(Pattern.compile("^" + unloadCode.substring(0, 2) + ".*$", Pattern.CASE_INSENSITIVE));
+                case 2 -> condition.and("unloadCityCode")
+                        .regex(Pattern.compile("^" + unloadCode.substring(0, 4) + ".*$", Pattern.CASE_INSENSITIVE));
+                case 3 -> condition.and("unloadCityCode").is(unloadCode);
+            }
+        }
+        //提货方式
+        if (StringUtils.isNotBlank(params.getPickupType())) {
+            condition.and("pickupType").is(params.getPickupType());
+        }
+        //交易方式
+        if (StringUtils.isNotBlank(params.getTrading())) {
+            condition.and("trading").is(params.getTrading());
+        }
+        //交付类型
+        if (StringUtils.isNotBlank(params.getDeliveryType())) {
+            condition.and("deliveryType").is(params.getDeliveryType());
+        }
+        //下单方式
+        if (StringUtils.isNotBlank(params.getSource())) {
+            condition.and("source").is(params.getSource());
+        }
+        //日期范围
+        if (Objects.nonNull(params.getStartCreateTime()) && Objects.nonNull(params.getEndCreateTime())) {
+            condition.and("createTime").gte(params.getStartCreateTime()).lte(params.getEndCreateTime());
+        } else if (Objects.nonNull(params.getStartCreateTime())) {
+            condition.and("createTime").gte(params.getStartCreateTime());
+        } else if (Objects.nonNull(params.getEndCreateTime())) {
+            condition.and("createTime").lte(params.getEndCreateTime());
+        }
+        //关键字模糊匹配
+        if (StringUtils.isNotBlank(params.getKeywords())) {
+            Pattern pattern = Pattern.compile("^.*" + params.getKeywords() + ".*$", Pattern.CASE_INSENSITIVE);
+            Criteria keywordsMatch = new Criteria().orOperator(
+                    Criteria.where("tOrderNo").regex(pattern), Criteria.where("procureFirmName").regex(pattern),
+                    Criteria.where("supplyFirmName").regex(pattern), Criteria.where("goodsName").regex(pattern));
+            condition.andOperator(keywordsMatch);
+        }
+        return condition;
+    }
+
+    /**
+     * @desc: 合同关联订单列表
+     * @author: yzc
+     * @date: 2023-09-14 14:52
+     * @Param params:
+     * @return: com.sckw.core.model.page.PageResult
+     */
+    public PageResult contractAssociationList(OperatorTOrderContractParam params) {
+        Criteria criteria = new Criteria();
+        List<Long> ids = StringUtils.splitStrToList(params.getContractIds(), ",", Long.class);
+        criteria.and("contractId").in(ids).and("delFlag").is(0);
+        return kwOrderService.getContractResult(criteria, params.getPage(), params.getPageSize());
+    }
+}